288.78/212.19 MAYBE 288.78/212.20 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 288.78/212.20 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 288.78/212.20 288.78/212.20 288.78/212.20 H-Termination with start terms of the given HASKELL could not be shown: 288.78/212.20 288.78/212.20 (0) HASKELL 288.78/212.20 (1) BR [EQUIVALENT, 0 ms] 288.78/212.20 (2) HASKELL 288.78/212.20 (3) COR [EQUIVALENT, 0 ms] 288.78/212.20 (4) HASKELL 288.78/212.20 (5) Narrow [SOUND, 0 ms] 288.78/212.20 (6) AND 288.78/212.20 (7) QDP 288.78/212.20 (8) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (9) QDP 288.78/212.20 (10) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (11) QDP 288.78/212.20 (12) QDP 288.78/212.20 (13) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (14) QDP 288.78/212.20 (15) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (16) QDP 288.78/212.20 (17) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (18) QDP 288.78/212.20 (19) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (20) QDP 288.78/212.20 (21) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (22) QDP 288.78/212.20 (23) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (24) QDP 288.78/212.20 (25) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (26) QDP 288.78/212.20 (27) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (28) QDP 288.78/212.20 (29) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (30) QDP 288.78/212.20 (31) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (32) QDP 288.78/212.20 (33) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (34) QDP 288.78/212.20 (35) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (36) QDP 288.78/212.20 (37) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (38) QDP 288.78/212.20 (39) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (40) QDP 288.78/212.20 (41) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (42) QDP 288.78/212.20 (43) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (44) QDP 288.78/212.20 (45) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (46) QDP 288.78/212.20 (47) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (48) QDP 288.78/212.20 (49) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (50) QDP 288.78/212.20 (51) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (52) QDP 288.78/212.20 (53) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (54) QDP 288.78/212.20 (55) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (56) QDP 288.78/212.20 (57) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (58) QDP 288.78/212.20 (59) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (60) QDP 288.78/212.20 (61) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (62) QDP 288.78/212.20 (63) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (64) QDP 288.78/212.20 (65) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (66) QDP 288.78/212.20 (67) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (68) QDP 288.78/212.20 (69) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (70) QDP 288.78/212.20 (71) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (72) QDP 288.78/212.20 (73) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (74) QDP 288.78/212.20 (75) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (76) QDP 288.78/212.20 (77) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (78) QDP 288.78/212.20 (79) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (80) QDP 288.78/212.20 (81) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (82) QDP 288.78/212.20 (83) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (84) QDP 288.78/212.20 (85) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (86) QDP 288.78/212.20 (87) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (88) QDP 288.78/212.20 (89) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (90) QDP 288.78/212.20 (91) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (92) QDP 288.78/212.20 (93) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (94) QDP 288.78/212.20 (95) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (96) QDP 288.78/212.20 (97) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (98) QDP 288.78/212.20 (99) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (100) QDP 288.78/212.20 (101) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (102) QDP 288.78/212.20 (103) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (104) QDP 288.78/212.20 (105) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (106) QDP 288.78/212.20 (107) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (108) QDP 288.78/212.20 (109) TransformationProof [EQUIVALENT, 1 ms] 288.78/212.20 (110) QDP 288.78/212.20 (111) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (112) QDP 288.78/212.20 (113) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (114) QDP 288.78/212.20 (115) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (116) QDP 288.78/212.20 (117) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (118) QDP 288.78/212.20 (119) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (120) QDP 288.78/212.20 (121) QDPOrderProof [EQUIVALENT, 38 ms] 288.78/212.20 (122) QDP 288.78/212.20 (123) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (124) QDP 288.78/212.20 (125) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (126) QDP 288.78/212.20 (127) QDP 288.78/212.20 (128) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (129) YES 288.78/212.20 (130) QDP 288.78/212.20 (131) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (132) QDP 288.78/212.20 (133) InductionCalculusProof [EQUIVALENT, 1 ms] 288.78/212.20 (134) QDP 288.78/212.20 (135) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (136) QDP 288.78/212.20 (137) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (138) QDP 288.78/212.20 (139) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (140) QDP 288.78/212.20 (141) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (142) QDP 288.78/212.20 (143) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (144) QDP 288.78/212.20 (145) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (146) QDP 288.78/212.20 (147) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (148) QDP 288.78/212.20 (149) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (150) QDP 288.78/212.20 (151) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (152) QDP 288.78/212.20 (153) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (154) QDP 288.78/212.20 (155) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (156) QDP 288.78/212.20 (157) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (158) QDP 288.78/212.20 (159) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (160) QDP 288.78/212.20 (161) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (162) QDP 288.78/212.20 (163) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (164) QDP 288.78/212.20 (165) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (166) QDP 288.78/212.20 (167) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (168) QDP 288.78/212.20 (169) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (170) QDP 288.78/212.20 (171) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (172) QDP 288.78/212.20 (173) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (174) QDP 288.78/212.20 (175) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (176) QDP 288.78/212.20 (177) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (178) QDP 288.78/212.20 (179) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (180) QDP 288.78/212.20 (181) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (182) QDP 288.78/212.20 (183) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (184) QDP 288.78/212.20 (185) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (186) QDP 288.78/212.20 (187) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (188) QDP 288.78/212.20 (189) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (190) QDP 288.78/212.20 (191) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (192) QDP 288.78/212.20 (193) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (194) QDP 288.78/212.20 (195) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (196) QDP 288.78/212.20 (197) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (198) QDP 288.78/212.20 (199) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (200) QDP 288.78/212.20 (201) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (202) QDP 288.78/212.20 (203) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (204) QDP 288.78/212.20 (205) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (206) QDP 288.78/212.20 (207) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (208) QDP 288.78/212.20 (209) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (210) QDP 288.78/212.20 (211) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (212) QDP 288.78/212.20 (213) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (214) QDP 288.78/212.20 (215) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (216) QDP 288.78/212.20 (217) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (218) QDP 288.78/212.20 (219) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (220) QDP 288.78/212.20 (221) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (222) QDP 288.78/212.20 (223) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (224) QDP 288.78/212.20 (225) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (226) QDP 288.78/212.20 (227) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (228) QDP 288.78/212.20 (229) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (230) QDP 288.78/212.20 (231) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (232) QDP 288.78/212.20 (233) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (234) QDP 288.78/212.20 (235) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (236) QDP 288.78/212.20 (237) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (238) QDP 288.78/212.20 (239) QDPOrderProof [EQUIVALENT, 5 ms] 288.78/212.20 (240) QDP 288.78/212.20 (241) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (242) QDP 288.78/212.20 (243) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (244) QDP 288.78/212.20 (245) QDP 288.78/212.20 (246) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (247) AND 288.78/212.20 (248) QDP 288.78/212.20 (249) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (250) QDP 288.78/212.20 (251) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (252) QDP 288.78/212.20 (253) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (254) QDP 288.78/212.20 (255) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (256) QDP 288.78/212.20 (257) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (258) QDP 288.78/212.20 (259) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (260) QDP 288.78/212.20 (261) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (262) QDP 288.78/212.20 (263) QDPOrderProof [EQUIVALENT, 0 ms] 288.78/212.20 (264) QDP 288.78/212.20 (265) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (266) QDP 288.78/212.20 (267) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (268) QDP 288.78/212.20 (269) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (270) QDP 288.78/212.20 (271) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (272) QDP 288.78/212.20 (273) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (274) QDP 288.78/212.20 (275) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (276) QDP 288.78/212.20 (277) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (278) QDP 288.78/212.20 (279) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (280) QDP 288.78/212.20 (281) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (282) QDP 288.78/212.20 (283) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (284) QDP 288.78/212.20 (285) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (286) QDP 288.78/212.20 (287) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (288) QDP 288.78/212.20 (289) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (290) QDP 288.78/212.20 (291) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (292) QDP 288.78/212.20 (293) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (294) QDP 288.78/212.20 (295) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (296) QDP 288.78/212.20 (297) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (298) QDP 288.78/212.20 (299) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (300) QDP 288.78/212.20 (301) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (302) QDP 288.78/212.20 (303) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (304) QDP 288.78/212.20 (305) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (306) QDP 288.78/212.20 (307) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (308) QDP 288.78/212.20 (309) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (310) QDP 288.78/212.20 (311) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (312) QDP 288.78/212.20 (313) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (314) QDP 288.78/212.20 (315) QDP 288.78/212.20 (316) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (317) QDP 288.78/212.20 (318) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (319) QDP 288.78/212.20 (320) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (321) QDP 288.78/212.20 (322) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (323) QDP 288.78/212.20 (324) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (325) QDP 288.78/212.20 (326) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (327) QDP 288.78/212.20 (328) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (329) QDP 288.78/212.20 (330) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (331) QDP 288.78/212.20 (332) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (333) QDP 288.78/212.20 (334) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (335) QDP 288.78/212.20 (336) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (337) QDP 288.78/212.20 (338) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (339) QDP 288.78/212.20 (340) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (341) QDP 288.78/212.20 (342) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (343) QDP 288.78/212.20 (344) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (345) QDP 288.78/212.20 (346) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (347) QDP 288.78/212.20 (348) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (349) QDP 288.78/212.20 (350) QDPOrderProof [EQUIVALENT, 0 ms] 288.78/212.20 (351) QDP 288.78/212.20 (352) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (353) QDP 288.78/212.20 (354) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (355) QDP 288.78/212.20 (356) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (357) QDP 288.78/212.20 (358) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (359) QDP 288.78/212.20 (360) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (361) QDP 288.78/212.20 (362) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (363) QDP 288.78/212.20 (364) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (365) QDP 288.78/212.20 (366) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (367) QDP 288.78/212.20 (368) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (369) QDP 288.78/212.20 (370) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (371) QDP 288.78/212.20 (372) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (373) QDP 288.78/212.20 (374) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (375) QDP 288.78/212.20 (376) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (377) QDP 288.78/212.20 (378) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (379) QDP 288.78/212.20 (380) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (381) QDP 288.78/212.20 (382) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (383) QDP 288.78/212.20 (384) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (385) QDP 288.78/212.20 (386) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (387) QDP 288.78/212.20 (388) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (389) QDP 288.78/212.20 (390) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (391) QDP 288.78/212.20 (392) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (393) QDP 288.78/212.20 (394) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (395) QDP 288.78/212.20 (396) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (397) QDP 288.78/212.20 (398) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (399) QDP 288.78/212.20 (400) QDP 288.78/212.20 (401) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (402) AND 288.78/212.20 (403) QDP 288.78/212.20 (404) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (405) QDP 288.78/212.20 (406) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (407) QDP 288.78/212.20 (408) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (409) QDP 288.78/212.20 (410) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (411) QDP 288.78/212.20 (412) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (413) QDP 288.78/212.20 (414) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (415) QDP 288.78/212.20 (416) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (417) QDP 288.78/212.20 (418) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (419) QDP 288.78/212.20 (420) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (421) QDP 288.78/212.20 (422) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (423) QDP 288.78/212.20 (424) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (425) QDP 288.78/212.20 (426) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (427) QDP 288.78/212.20 (428) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (429) QDP 288.78/212.20 (430) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (431) QDP 288.78/212.20 (432) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (433) QDP 288.78/212.20 (434) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (435) QDP 288.78/212.20 (436) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (437) QDP 288.78/212.20 (438) QDPOrderProof [EQUIVALENT, 0 ms] 288.78/212.20 (439) QDP 288.78/212.20 (440) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (441) QDP 288.78/212.20 (442) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (443) QDP 288.78/212.20 (444) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (445) QDP 288.78/212.20 (446) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (447) QDP 288.78/212.20 (448) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (449) QDP 288.78/212.20 (450) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (451) QDP 288.78/212.20 (452) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (453) QDP 288.78/212.20 (454) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (455) QDP 288.78/212.20 (456) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (457) QDP 288.78/212.20 (458) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (459) QDP 288.78/212.20 (460) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (461) QDP 288.78/212.20 (462) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (463) QDP 288.78/212.20 (464) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (465) QDP 288.78/212.20 (466) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (467) QDP 288.78/212.20 (468) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (469) QDP 288.78/212.20 (470) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (471) QDP 288.78/212.20 (472) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (473) QDP 288.78/212.20 (474) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (475) QDP 288.78/212.20 (476) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (477) QDP 288.78/212.20 (478) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (479) QDP 288.78/212.20 (480) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (481) QDP 288.78/212.20 (482) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (483) QDP 288.78/212.20 (484) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (485) QDP 288.78/212.20 (486) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (487) QDP 288.78/212.20 (488) QDP 288.78/212.20 (489) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (490) QDP 288.78/212.20 (491) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (492) QDP 288.78/212.20 (493) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (494) QDP 288.78/212.20 (495) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (496) QDP 288.78/212.20 (497) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (498) QDP 288.78/212.20 (499) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (500) QDP 288.78/212.20 (501) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (502) QDP 288.78/212.20 (503) QDPOrderProof [EQUIVALENT, 0 ms] 288.78/212.20 (504) QDP 288.78/212.20 (505) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (506) QDP 288.78/212.20 (507) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (508) QDP 288.78/212.20 (509) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (510) QDP 288.78/212.20 (511) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (512) QDP 288.78/212.20 (513) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (514) QDP 288.78/212.20 (515) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (516) QDP 288.78/212.20 (517) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (518) QDP 288.78/212.20 (519) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (520) QDP 288.78/212.20 (521) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (522) QDP 288.78/212.20 (523) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (524) QDP 288.78/212.20 (525) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (526) QDP 288.78/212.20 (527) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (528) QDP 288.78/212.20 (529) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (530) QDP 288.78/212.20 (531) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (532) QDP 288.78/212.20 (533) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (534) QDP 288.78/212.20 (535) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (536) QDP 288.78/212.20 (537) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (538) QDP 288.78/212.20 (539) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (540) QDP 288.78/212.20 (541) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (542) QDP 288.78/212.20 (543) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (544) QDP 288.78/212.20 (545) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (546) QDP 288.78/212.20 (547) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (548) QDP 288.78/212.20 (549) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (550) QDP 288.78/212.20 (551) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (552) QDP 288.78/212.20 (553) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (554) QDP 288.78/212.20 (555) QDP 288.78/212.20 (556) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (557) AND 288.78/212.20 (558) QDP 288.78/212.20 (559) QDPOrderProof [EQUIVALENT, 0 ms] 288.78/212.20 (560) QDP 288.78/212.20 (561) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (562) QDP 288.78/212.20 (563) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (564) YES 288.78/212.20 (565) QDP 288.78/212.20 (566) MRRProof [EQUIVALENT, 0 ms] 288.78/212.20 (567) QDP 288.78/212.20 (568) PisEmptyProof [EQUIVALENT, 0 ms] 288.78/212.20 (569) YES 288.78/212.20 (570) QDP 288.78/212.20 (571) MNOCProof [EQUIVALENT, 4 ms] 288.78/212.20 (572) QDP 288.78/212.20 (573) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (574) QDP 288.78/212.20 (575) QDP 288.78/212.20 (576) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (577) YES 288.78/212.20 (578) QDP 288.78/212.20 (579) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (580) YES 288.78/212.20 (581) QDP 288.78/212.20 (582) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (583) YES 288.78/212.20 (584) QDP 288.78/212.20 (585) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (586) YES 288.78/212.20 (587) QDP 288.78/212.20 (588) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (589) YES 288.78/212.20 (590) QDP 288.78/212.20 (591) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (592) QDP 288.78/212.20 (593) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (594) QDP 288.78/212.20 (595) QDP 288.78/212.20 (596) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.20 (597) QDP 288.78/212.20 (598) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (599) QDP 288.78/212.20 (600) QDP 288.78/212.20 (601) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (602) QDP 288.78/212.20 (603) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (604) QDP 288.78/212.20 (605) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (606) QDP 288.78/212.20 (607) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (608) AND 288.78/212.20 (609) QDP 288.78/212.20 (610) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (611) QDP 288.78/212.20 (612) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (613) QDP 288.78/212.20 (614) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (615) QDP 288.78/212.20 (616) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (617) QDP 288.78/212.20 (618) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (619) QDP 288.78/212.20 (620) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (621) QDP 288.78/212.20 (622) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (623) QDP 288.78/212.20 (624) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (625) QDP 288.78/212.20 (626) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (627) QDP 288.78/212.20 (628) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (629) QDP 288.78/212.20 (630) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (631) QDP 288.78/212.20 (632) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (633) QDP 288.78/212.20 (634) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (635) QDP 288.78/212.20 (636) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (637) QDP 288.78/212.20 (638) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (639) QDP 288.78/212.20 (640) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (641) QDP 288.78/212.20 (642) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (643) QDP 288.78/212.20 (644) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (645) QDP 288.78/212.20 (646) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (647) QDP 288.78/212.20 (648) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (649) QDP 288.78/212.20 (650) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (651) QDP 288.78/212.20 (652) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (653) AND 288.78/212.20 (654) QDP 288.78/212.20 (655) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (656) QDP 288.78/212.20 (657) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (658) QDP 288.78/212.20 (659) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (660) QDP 288.78/212.20 (661) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (662) QDP 288.78/212.20 (663) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (664) QDP 288.78/212.20 (665) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (666) QDP 288.78/212.20 (667) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (668) AND 288.78/212.20 (669) QDP 288.78/212.20 (670) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (671) QDP 288.78/212.20 (672) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (673) QDP 288.78/212.20 (674) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (675) QDP 288.78/212.20 (676) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (677) QDP 288.78/212.20 (678) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (679) QDP 288.78/212.20 (680) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (681) QDP 288.78/212.20 (682) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (683) QDP 288.78/212.20 (684) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (685) QDP 288.78/212.20 (686) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (687) QDP 288.78/212.20 (688) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (689) QDP 288.78/212.20 (690) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (691) QDP 288.78/212.20 (692) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (693) QDP 288.78/212.20 (694) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (695) QDP 288.78/212.20 (696) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (697) QDP 288.78/212.20 (698) QDP 288.78/212.20 (699) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (700) QDP 288.78/212.20 (701) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (702) QDP 288.78/212.20 (703) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (704) QDP 288.78/212.20 (705) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (706) QDP 288.78/212.20 (707) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (708) QDP 288.78/212.20 (709) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (710) QDP 288.78/212.20 (711) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (712) QDP 288.78/212.20 (713) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (714) QDP 288.78/212.20 (715) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (716) QDP 288.78/212.20 (717) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (718) QDP 288.78/212.20 (719) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (720) QDP 288.78/212.20 (721) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (722) AND 288.78/212.20 (723) QDP 288.78/212.20 (724) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (725) QDP 288.78/212.20 (726) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (727) QDP 288.78/212.20 (728) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (729) QDP 288.78/212.20 (730) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (731) QDP 288.78/212.20 (732) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (733) QDP 288.78/212.20 (734) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (735) QDP 288.78/212.20 (736) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (737) AND 288.78/212.20 (738) QDP 288.78/212.20 (739) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (740) QDP 288.78/212.20 (741) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (742) QDP 288.78/212.20 (743) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (744) QDP 288.78/212.20 (745) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (746) YES 288.78/212.20 (747) QDP 288.78/212.20 (748) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (749) QDP 288.78/212.20 (750) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (751) QDP 288.78/212.20 (752) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (753) QDP 288.78/212.20 (754) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (755) QDP 288.78/212.20 (756) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (757) QDP 288.78/212.20 (758) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (759) QDP 288.78/212.20 (760) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (761) QDP 288.78/212.20 (762) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (763) QDP 288.78/212.20 (764) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (765) QDP 288.78/212.20 (766) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (767) YES 288.78/212.20 (768) QDP 288.78/212.20 (769) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (770) QDP 288.78/212.20 (771) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (772) QDP 288.78/212.20 (773) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (774) QDP 288.78/212.20 (775) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (776) AND 288.78/212.20 (777) QDP 288.78/212.20 (778) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (779) QDP 288.78/212.20 (780) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (781) QDP 288.78/212.20 (782) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (783) QDP 288.78/212.20 (784) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (785) QDP 288.78/212.20 (786) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (787) QDP 288.78/212.20 (788) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (789) QDP 288.78/212.20 (790) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (791) AND 288.78/212.20 (792) QDP 288.78/212.20 (793) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (794) QDP 288.78/212.20 (795) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (796) QDP 288.78/212.20 (797) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (798) QDP 288.78/212.20 (799) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (800) YES 288.78/212.20 (801) QDP 288.78/212.20 (802) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (803) QDP 288.78/212.20 (804) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (805) QDP 288.78/212.20 (806) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (807) QDP 288.78/212.20 (808) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (809) QDP 288.78/212.20 (810) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (811) QDP 288.78/212.20 (812) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (813) QDP 288.78/212.20 (814) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (815) QDP 288.78/212.20 (816) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (817) QDP 288.78/212.20 (818) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (819) QDP 288.78/212.20 (820) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (821) YES 288.78/212.20 (822) QDP 288.78/212.20 (823) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (824) QDP 288.78/212.20 (825) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (826) QDP 288.78/212.20 (827) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (828) QDP 288.78/212.20 (829) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (830) AND 288.78/212.20 (831) QDP 288.78/212.20 (832) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (833) QDP 288.78/212.20 (834) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (835) QDP 288.78/212.20 (836) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (837) QDP 288.78/212.20 (838) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (839) QDP 288.78/212.20 (840) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (841) QDP 288.78/212.20 (842) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (843) QDP 288.78/212.20 (844) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (845) AND 288.78/212.20 (846) QDP 288.78/212.20 (847) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (848) QDP 288.78/212.20 (849) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (850) QDP 288.78/212.20 (851) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (852) QDP 288.78/212.20 (853) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (854) YES 288.78/212.20 (855) QDP 288.78/212.20 (856) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (857) QDP 288.78/212.20 (858) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (859) QDP 288.78/212.20 (860) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (861) QDP 288.78/212.20 (862) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (863) QDP 288.78/212.20 (864) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (865) QDP 288.78/212.20 (866) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (867) QDP 288.78/212.20 (868) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (869) QDP 288.78/212.20 (870) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (871) QDP 288.78/212.20 (872) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (873) QDP 288.78/212.20 (874) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (875) YES 288.78/212.20 (876) QDP 288.78/212.20 (877) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (878) QDP 288.78/212.20 (879) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (880) QDP 288.78/212.20 (881) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (882) QDP 288.78/212.20 (883) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (884) AND 288.78/212.20 (885) QDP 288.78/212.20 (886) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (887) QDP 288.78/212.20 (888) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (889) QDP 288.78/212.20 (890) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (891) QDP 288.78/212.20 (892) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (893) QDP 288.78/212.20 (894) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (895) QDP 288.78/212.20 (896) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (897) QDP 288.78/212.20 (898) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (899) QDP 288.78/212.20 (900) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (901) YES 288.78/212.20 (902) QDP 288.78/212.20 (903) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (904) QDP 288.78/212.20 (905) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (906) QDP 288.78/212.20 (907) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.20 (908) YES 288.78/212.20 (909) QDP 288.78/212.20 (910) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (911) QDP 288.78/212.20 (912) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (913) QDP 288.78/212.20 (914) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (915) QDP 288.78/212.20 (916) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (917) QDP 288.78/212.20 (918) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (919) QDP 288.78/212.20 (920) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (921) QDP 288.78/212.20 (922) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (923) AND 288.78/212.20 (924) QDP 288.78/212.20 (925) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (926) QDP 288.78/212.20 (927) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (928) QDP 288.78/212.20 (929) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (930) QDP 288.78/212.20 (931) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (932) QDP 288.78/212.20 (933) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (934) QDP 288.78/212.20 (935) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (936) QDP 288.78/212.20 (937) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (938) QDP 288.78/212.20 (939) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.20 (940) AND 288.78/212.20 (941) QDP 288.78/212.20 (942) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (943) QDP 288.78/212.20 (944) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (945) QDP 288.78/212.20 (946) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (947) QDP 288.78/212.20 (948) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (949) QDP 288.78/212.20 (950) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (951) QDP 288.78/212.20 (952) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (953) QDP 288.78/212.20 (954) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (955) QDP 288.78/212.20 (956) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.20 (957) QDP 288.78/212.20 (958) QDP 288.78/212.20 (959) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (960) QDP 288.78/212.20 (961) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.20 (962) QDP 288.78/212.20 (963) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (964) QDP 288.78/212.20 (965) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.20 (966) QDP 288.78/212.20 (967) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.20 (968) QDP 288.78/212.20 (969) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (970) QDP 288.78/212.21 (971) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (972) QDP 288.78/212.21 (973) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (974) AND 288.78/212.21 (975) QDP 288.78/212.21 (976) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (977) QDP 288.78/212.21 (978) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (979) QDP 288.78/212.21 (980) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (981) QDP 288.78/212.21 (982) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (983) QDP 288.78/212.21 (984) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (985) QDP 288.78/212.21 (986) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (987) QDP 288.78/212.21 (988) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (989) QDP 288.78/212.21 (990) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (991) QDP 288.78/212.21 (992) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (993) QDP 288.78/212.21 (994) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (995) NO 288.78/212.21 (996) QDP 288.78/212.21 (997) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (998) QDP 288.78/212.21 (999) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1000) QDP 288.78/212.21 (1001) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1002) QDP 288.78/212.21 (1003) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1004) QDP 288.78/212.21 (1005) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1006) QDP 288.78/212.21 (1007) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1008) QDP 288.78/212.21 (1009) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1010) QDP 288.78/212.21 (1011) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1012) QDP 288.78/212.21 (1013) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1014) QDP 288.78/212.21 (1015) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1016) QDP 288.78/212.21 (1017) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1018) QDP 288.78/212.21 (1019) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1020) QDP 288.78/212.21 (1021) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1022) NO 288.78/212.21 (1023) QDP 288.78/212.21 (1024) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1025) QDP 288.78/212.21 (1026) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1027) QDP 288.78/212.21 (1028) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1029) QDP 288.78/212.21 (1030) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1031) QDP 288.78/212.21 (1032) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1033) QDP 288.78/212.21 (1034) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1035) QDP 288.78/212.21 (1036) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1037) QDP 288.78/212.21 (1038) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1039) QDP 288.78/212.21 (1040) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1041) QDP 288.78/212.21 (1042) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1043) NO 288.78/212.21 (1044) QDP 288.78/212.21 (1045) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1046) QDP 288.78/212.21 (1047) QReductionProof [EQUIVALENT, 1 ms] 288.78/212.21 (1048) QDP 288.78/212.21 (1049) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1050) QDP 288.78/212.21 (1051) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1052) QDP 288.78/212.21 (1053) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1054) QDP 288.78/212.21 (1055) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1056) QDP 288.78/212.21 (1057) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1058) QDP 288.78/212.21 (1059) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1060) QDP 288.78/212.21 (1061) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1062) QDP 288.78/212.21 (1063) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1064) QDP 288.78/212.21 (1065) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1066) QDP 288.78/212.21 (1067) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1068) QDP 288.78/212.21 (1069) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1070) QDP 288.78/212.21 (1071) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1072) QDP 288.78/212.21 (1073) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1074) AND 288.78/212.21 (1075) QDP 288.78/212.21 (1076) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1077) QDP 288.78/212.21 (1078) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1079) QDP 288.78/212.21 (1080) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1081) QDP 288.78/212.21 (1082) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.21 (1083) QDP 288.78/212.21 (1084) NonTerminationLoopProof [COMPLETE, 379 ms] 288.78/212.21 (1085) NO 288.78/212.21 (1086) QDP 288.78/212.21 (1087) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1088) QDP 288.78/212.21 (1089) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1090) QDP 288.78/212.21 (1091) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1092) QDP 288.78/212.21 (1093) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1094) QDP 288.78/212.21 (1095) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1096) QDP 288.78/212.21 (1097) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1098) QDP 288.78/212.21 (1099) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1100) QDP 288.78/212.21 (1101) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1102) QDP 288.78/212.21 (1103) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1104) QDP 288.78/212.21 (1105) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1106) NO 288.78/212.21 (1107) QDP 288.78/212.21 (1108) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1109) QDP 288.78/212.21 (1110) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1111) QDP 288.78/212.21 (1112) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1113) QDP 288.78/212.21 (1114) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1115) QDP 288.78/212.21 (1116) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1117) QDP 288.78/212.21 (1118) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1119) QDP 288.78/212.21 (1120) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1121) QDP 288.78/212.21 (1122) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1123) AND 288.78/212.21 (1124) QDP 288.78/212.21 (1125) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1126) QDP 288.78/212.21 (1127) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1128) QDP 288.78/212.21 (1129) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1130) QDP 288.78/212.21 (1131) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1132) QDP 288.78/212.21 (1133) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1134) QDP 288.78/212.21 (1135) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1136) QDP 288.78/212.21 (1137) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1138) QDP 288.78/212.21 (1139) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1140) AND 288.78/212.21 (1141) QDP 288.78/212.21 (1142) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1143) QDP 288.78/212.21 (1144) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1145) QDP 288.78/212.21 (1146) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1147) QDP 288.78/212.21 (1148) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1149) QDP 288.78/212.21 (1150) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1151) QDP 288.78/212.21 (1152) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1153) QDP 288.78/212.21 (1154) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1155) QDP 288.78/212.21 (1156) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1157) AND 288.78/212.21 (1158) QDP 288.78/212.21 (1159) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1160) QDP 288.78/212.21 (1161) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1162) QDP 288.78/212.21 (1163) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1164) QDP 288.78/212.21 (1165) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1166) QDP 288.78/212.21 (1167) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1168) QDP 288.78/212.21 (1169) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1170) QDP 288.78/212.21 (1171) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1172) QDP 288.78/212.21 (1173) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.21 (1174) QDP 288.78/212.21 (1175) QDP 288.78/212.21 (1176) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1177) QDP 288.78/212.21 (1178) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1179) QDP 288.78/212.21 (1180) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1181) QDP 288.78/212.21 (1182) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1183) QDP 288.78/212.21 (1184) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1185) QDP 288.78/212.21 (1186) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1187) QDP 288.78/212.21 (1188) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1189) QDP 288.78/212.21 (1190) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1191) AND 288.78/212.21 (1192) QDP 288.78/212.21 (1193) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1194) QDP 288.78/212.21 (1195) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1196) QDP 288.78/212.21 (1197) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1198) QDP 288.78/212.21 (1199) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1200) QDP 288.78/212.21 (1201) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1202) QDP 288.78/212.21 (1203) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1204) QDP 288.78/212.21 (1205) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1206) QDP 288.78/212.21 (1207) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1208) QDP 288.78/212.21 (1209) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1210) QDP 288.78/212.21 (1211) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1212) NO 288.78/212.21 (1213) QDP 288.78/212.21 (1214) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1215) QDP 288.78/212.21 (1216) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1217) QDP 288.78/212.21 (1218) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1219) QDP 288.78/212.21 (1220) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1221) QDP 288.78/212.21 (1222) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1223) QDP 288.78/212.21 (1224) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1225) QDP 288.78/212.21 (1226) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1227) QDP 288.78/212.21 (1228) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1229) QDP 288.78/212.21 (1230) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1231) QDP 288.78/212.21 (1232) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1233) QDP 288.78/212.21 (1234) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1235) QDP 288.78/212.21 (1236) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1237) QDP 288.78/212.21 (1238) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1239) NO 288.78/212.21 (1240) QDP 288.78/212.21 (1241) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1242) QDP 288.78/212.21 (1243) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1244) QDP 288.78/212.21 (1245) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1246) QDP 288.78/212.21 (1247) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1248) QDP 288.78/212.21 (1249) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1250) QDP 288.78/212.21 (1251) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1252) QDP 288.78/212.21 (1253) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1254) QDP 288.78/212.21 (1255) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1256) QDP 288.78/212.21 (1257) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1258) QDP 288.78/212.21 (1259) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1260) NO 288.78/212.21 (1261) QDP 288.78/212.21 (1262) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1263) QDP 288.78/212.21 (1264) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1265) QDP 288.78/212.21 (1266) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1267) QDP 288.78/212.21 (1268) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1269) QDP 288.78/212.21 (1270) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1271) QDP 288.78/212.21 (1272) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1273) QDP 288.78/212.21 (1274) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1275) QDP 288.78/212.21 (1276) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1277) QDP 288.78/212.21 (1278) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1279) QDP 288.78/212.21 (1280) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1281) QDP 288.78/212.21 (1282) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1283) QDP 288.78/212.21 (1284) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1285) QDP 288.78/212.21 (1286) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1287) QDP 288.78/212.21 (1288) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1289) QDP 288.78/212.21 (1290) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1291) AND 288.78/212.21 (1292) QDP 288.78/212.21 (1293) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1294) QDP 288.78/212.21 (1295) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1296) QDP 288.78/212.21 (1297) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1298) QDP 288.78/212.21 (1299) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.21 (1300) QDP 288.78/212.21 (1301) NonTerminationLoopProof [COMPLETE, 420 ms] 288.78/212.21 (1302) NO 288.78/212.21 (1303) QDP 288.78/212.21 (1304) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1305) QDP 288.78/212.21 (1306) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1307) QDP 288.78/212.21 (1308) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1309) QDP 288.78/212.21 (1310) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1311) QDP 288.78/212.21 (1312) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1313) QDP 288.78/212.21 (1314) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1315) QDP 288.78/212.21 (1316) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1317) QDP 288.78/212.21 (1318) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1319) QDP 288.78/212.21 (1320) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1321) QDP 288.78/212.21 (1322) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1323) NO 288.78/212.21 (1324) QDP 288.78/212.21 (1325) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1326) QDP 288.78/212.21 (1327) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1328) QDP 288.78/212.21 (1329) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1330) QDP 288.78/212.21 (1331) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1332) QDP 288.78/212.21 (1333) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1334) QDP 288.78/212.21 (1335) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1336) QDP 288.78/212.21 (1337) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1338) QDP 288.78/212.21 (1339) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1340) AND 288.78/212.21 (1341) QDP 288.78/212.21 (1342) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1343) QDP 288.78/212.21 (1344) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1345) QDP 288.78/212.21 (1346) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1347) QDP 288.78/212.21 (1348) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1349) QDP 288.78/212.21 (1350) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1351) QDP 288.78/212.21 (1352) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1353) QDP 288.78/212.21 (1354) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1355) QDP 288.78/212.21 (1356) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1357) QDP 288.78/212.21 (1358) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1359) QDP 288.78/212.21 (1360) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1361) QDP 288.78/212.21 (1362) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1363) QDP 288.78/212.21 (1364) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1365) QDP 288.78/212.21 (1366) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1367) QDP 288.78/212.21 (1368) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.21 (1369) QDP 288.78/212.21 (1370) QDP 288.78/212.21 (1371) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1372) QDP 288.78/212.21 (1373) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1374) QDP 288.78/212.21 (1375) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1376) QDP 288.78/212.21 (1377) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1378) QDP 288.78/212.21 (1379) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1380) QDP 288.78/212.21 (1381) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1382) QDP 288.78/212.21 (1383) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1384) QDP 288.78/212.21 (1385) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1386) QDP 288.78/212.21 (1387) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1388) QDP 288.78/212.21 (1389) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1390) QDP 288.78/212.21 (1391) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1392) QDP 288.78/212.21 (1393) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1394) AND 288.78/212.21 (1395) QDP 288.78/212.21 (1396) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1397) QDP 288.78/212.21 (1398) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1399) QDP 288.78/212.21 (1400) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1401) QDP 288.78/212.21 (1402) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1403) QDP 288.78/212.21 (1404) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1405) QDP 288.78/212.21 (1406) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1407) QDP 288.78/212.21 (1408) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1409) QDP 288.78/212.21 (1410) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1411) QDP 288.78/212.21 (1412) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1413) QDP 288.78/212.21 (1414) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1415) QDP 288.78/212.21 (1416) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1417) YES 288.78/212.21 (1418) QDP 288.78/212.21 (1419) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1420) QDP 288.78/212.21 (1421) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1422) QDP 288.78/212.21 (1423) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1424) QDP 288.78/212.21 (1425) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1426) AND 288.78/212.21 (1427) QDP 288.78/212.21 (1428) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1429) QDP 288.78/212.21 (1430) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1431) QDP 288.78/212.21 (1432) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1433) QDP 288.78/212.21 (1434) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1435) QDP 288.78/212.21 (1436) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1437) QDP 288.78/212.21 (1438) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1439) QDP 288.78/212.21 (1440) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1441) QDP 288.78/212.21 (1442) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1443) QDP 288.78/212.21 (1444) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1445) QDP 288.78/212.21 (1446) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1447) QDP 288.78/212.21 (1448) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1449) YES 288.78/212.21 (1450) QDP 288.78/212.21 (1451) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1452) QDP 288.78/212.21 (1453) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1454) QDP 288.78/212.21 (1455) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1456) QDP 288.78/212.21 (1457) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1458) AND 288.78/212.21 (1459) QDP 288.78/212.21 (1460) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1461) QDP 288.78/212.21 (1462) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1463) QDP 288.78/212.21 (1464) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1465) QDP 288.78/212.21 (1466) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1467) QDP 288.78/212.21 (1468) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1469) QDP 288.78/212.21 (1470) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1471) QDP 288.78/212.21 (1472) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1473) QDP 288.78/212.21 (1474) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1475) QDP 288.78/212.21 (1476) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1477) QDP 288.78/212.21 (1478) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1479) QDP 288.78/212.21 (1480) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1481) YES 288.78/212.21 (1482) QDP 288.78/212.21 (1483) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1484) QDP 288.78/212.21 (1485) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1486) QDP 288.78/212.21 (1487) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1488) QDP 288.78/212.21 (1489) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1490) AND 288.78/212.21 (1491) QDP 288.78/212.21 (1492) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1493) QDP 288.78/212.21 (1494) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1495) QDP 288.78/212.21 (1496) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1497) QDP 288.78/212.21 (1498) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1499) QDP 288.78/212.21 (1500) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1501) QDP 288.78/212.21 (1502) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1503) QDP 288.78/212.21 (1504) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1505) QDP 288.78/212.21 (1506) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1507) YES 288.78/212.21 (1508) QDP 288.78/212.21 (1509) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1510) QDP 288.78/212.21 (1511) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1512) QDP 288.78/212.21 (1513) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1514) YES 288.78/212.21 (1515) QDP 288.78/212.21 (1516) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1517) YES 288.78/212.21 (1518) QDP 288.78/212.21 (1519) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1520) YES 288.78/212.21 (1521) QDP 288.78/212.21 (1522) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1523) YES 288.78/212.21 (1524) QDP 288.78/212.21 (1525) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1526) QDP 288.78/212.21 (1527) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1528) QDP 288.78/212.21 (1529) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1530) QDP 288.78/212.21 (1531) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1532) AND 288.78/212.21 (1533) QDP 288.78/212.21 (1534) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1535) QDP 288.78/212.21 (1536) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1537) QDP 288.78/212.21 (1538) TransformationProof [EQUIVALENT, 4 ms] 288.78/212.21 (1539) QDP 288.78/212.21 (1540) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1541) QDP 288.78/212.21 (1542) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1543) QDP 288.78/212.21 (1544) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1545) QDP 288.78/212.21 (1546) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1547) QDP 288.78/212.21 (1548) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1549) QDP 288.78/212.21 (1550) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1551) QDP 288.78/212.21 (1552) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1553) QDP 288.78/212.21 (1554) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1555) QDP 288.78/212.21 (1556) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1557) QDP 288.78/212.21 (1558) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1559) QDP 288.78/212.21 (1560) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1561) QDP 288.78/212.21 (1562) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1563) QDP 288.78/212.21 (1564) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1565) QDP 288.78/212.21 (1566) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1567) QDP 288.78/212.21 (1568) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1569) QDP 288.78/212.21 (1570) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1571) QDP 288.78/212.21 (1572) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1573) QDP 288.78/212.21 (1574) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1575) QDP 288.78/212.21 (1576) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1577) AND 288.78/212.21 (1578) QDP 288.78/212.21 (1579) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1580) QDP 288.78/212.21 (1581) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1582) QDP 288.78/212.21 (1583) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1584) QDP 288.78/212.21 (1585) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1586) AND 288.78/212.21 (1587) QDP 288.78/212.21 (1588) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1589) QDP 288.78/212.21 (1590) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1591) QDP 288.78/212.21 (1592) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1593) QDP 288.78/212.21 (1594) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1595) QDP 288.78/212.21 (1596) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1597) QDP 288.78/212.21 (1598) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1599) QDP 288.78/212.21 (1600) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1601) QDP 288.78/212.21 (1602) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1603) QDP 288.78/212.21 (1604) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1605) QDP 288.78/212.21 (1606) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1607) QDP 288.78/212.21 (1608) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1609) QDP 288.78/212.21 (1610) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1611) QDP 288.78/212.21 (1612) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1613) QDP 288.78/212.21 (1614) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.21 (1615) QDP 288.78/212.21 (1616) QDP 288.78/212.21 (1617) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1618) QDP 288.78/212.21 (1619) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1620) QDP 288.78/212.21 (1621) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1622) QDP 288.78/212.21 (1623) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1624) QDP 288.78/212.21 (1625) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1626) QDP 288.78/212.21 (1627) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1628) QDP 288.78/212.21 (1629) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1630) QDP 288.78/212.21 (1631) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1632) QDP 288.78/212.21 (1633) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1634) QDP 288.78/212.21 (1635) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1636) QDP 288.78/212.21 (1637) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1638) QDP 288.78/212.21 (1639) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1640) AND 288.78/212.21 (1641) QDP 288.78/212.21 (1642) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1643) QDP 288.78/212.21 (1644) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1645) QDP 288.78/212.21 (1646) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1647) QDP 288.78/212.21 (1648) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1649) QDP 288.78/212.21 (1650) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1651) QDP 288.78/212.21 (1652) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1653) QDP 288.78/212.21 (1654) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1655) QDP 288.78/212.21 (1656) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1657) QDP 288.78/212.21 (1658) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1659) QDP 288.78/212.21 (1660) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1661) QDP 288.78/212.21 (1662) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1663) YES 288.78/212.21 (1664) QDP 288.78/212.21 (1665) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1666) QDP 288.78/212.21 (1667) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1668) QDP 288.78/212.21 (1669) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1670) QDP 288.78/212.21 (1671) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1672) AND 288.78/212.21 (1673) QDP 288.78/212.21 (1674) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1675) QDP 288.78/212.21 (1676) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1677) QDP 288.78/212.21 (1678) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1679) QDP 288.78/212.21 (1680) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1681) QDP 288.78/212.21 (1682) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1683) QDP 288.78/212.21 (1684) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1685) QDP 288.78/212.21 (1686) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1687) QDP 288.78/212.21 (1688) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1689) QDP 288.78/212.21 (1690) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1691) QDP 288.78/212.21 (1692) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1693) QDP 288.78/212.21 (1694) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1695) YES 288.78/212.21 (1696) QDP 288.78/212.21 (1697) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1698) QDP 288.78/212.21 (1699) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1700) QDP 288.78/212.21 (1701) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1702) QDP 288.78/212.21 (1703) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1704) AND 288.78/212.21 (1705) QDP 288.78/212.21 (1706) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1707) QDP 288.78/212.21 (1708) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1709) QDP 288.78/212.21 (1710) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1711) QDP 288.78/212.21 (1712) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1713) QDP 288.78/212.21 (1714) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1715) QDP 288.78/212.21 (1716) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1717) QDP 288.78/212.21 (1718) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1719) QDP 288.78/212.21 (1720) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1721) QDP 288.78/212.21 (1722) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1723) QDP 288.78/212.21 (1724) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1725) QDP 288.78/212.21 (1726) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1727) YES 288.78/212.21 (1728) QDP 288.78/212.21 (1729) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1730) QDP 288.78/212.21 (1731) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1732) QDP 288.78/212.21 (1733) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1734) QDP 288.78/212.21 (1735) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1736) AND 288.78/212.21 (1737) QDP 288.78/212.21 (1738) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1739) QDP 288.78/212.21 (1740) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1741) QDP 288.78/212.21 (1742) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1743) QDP 288.78/212.21 (1744) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1745) QDP 288.78/212.21 (1746) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1747) QDP 288.78/212.21 (1748) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1749) QDP 288.78/212.21 (1750) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1751) QDP 288.78/212.21 (1752) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1753) YES 288.78/212.21 (1754) QDP 288.78/212.21 (1755) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1756) QDP 288.78/212.21 (1757) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1758) QDP 288.78/212.21 (1759) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (1760) YES 288.78/212.21 (1761) QDP 288.78/212.21 (1762) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1763) QDP 288.78/212.21 (1764) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1765) QDP 288.78/212.21 (1766) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1767) QDP 288.78/212.21 (1768) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1769) AND 288.78/212.21 (1770) QDP 288.78/212.21 (1771) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1772) QDP 288.78/212.21 (1773) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1774) QDP 288.78/212.21 (1775) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1776) QDP 288.78/212.21 (1777) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1778) QDP 288.78/212.21 (1779) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1780) QDP 288.78/212.21 (1781) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1782) QDP 288.78/212.21 (1783) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1784) QDP 288.78/212.21 (1785) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1786) AND 288.78/212.21 (1787) QDP 288.78/212.21 (1788) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1789) QDP 288.78/212.21 (1790) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1791) QDP 288.78/212.21 (1792) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1793) QDP 288.78/212.21 (1794) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1795) QDP 288.78/212.21 (1796) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1797) QDP 288.78/212.21 (1798) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1799) QDP 288.78/212.21 (1800) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1801) QDP 288.78/212.21 (1802) NonTerminationLoopProof [COMPLETE, 1088 ms] 288.78/212.21 (1803) NO 288.78/212.21 (1804) QDP 288.78/212.21 (1805) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1806) QDP 288.78/212.21 (1807) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1808) QDP 288.78/212.21 (1809) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1810) QDP 288.78/212.21 (1811) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1812) QDP 288.78/212.21 (1813) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1814) QDP 288.78/212.21 (1815) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1816) QDP 288.78/212.21 (1817) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1818) QDP 288.78/212.21 (1819) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1820) AND 288.78/212.21 (1821) QDP 288.78/212.21 (1822) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1823) QDP 288.78/212.21 (1824) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1825) QDP 288.78/212.21 (1826) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1827) QDP 288.78/212.21 (1828) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1829) QDP 288.78/212.21 (1830) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1831) QDP 288.78/212.21 (1832) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1833) QDP 288.78/212.21 (1834) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1835) QDP 288.78/212.21 (1836) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1837) QDP 288.78/212.21 (1838) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1839) QDP 288.78/212.21 (1840) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1841) NO 288.78/212.21 (1842) QDP 288.78/212.21 (1843) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1844) QDP 288.78/212.21 (1845) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1846) QDP 288.78/212.21 (1847) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1848) QDP 288.78/212.21 (1849) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1850) QDP 288.78/212.21 (1851) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1852) QDP 288.78/212.21 (1853) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1854) QDP 288.78/212.21 (1855) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1856) QDP 288.78/212.21 (1857) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1858) QDP 288.78/212.21 (1859) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1860) QDP 288.78/212.21 (1861) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1862) NO 288.78/212.21 (1863) QDP 288.78/212.21 (1864) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1865) QDP 288.78/212.21 (1866) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1867) QDP 288.78/212.21 (1868) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1869) QDP 288.78/212.21 (1870) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1871) QDP 288.78/212.21 (1872) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1873) QDP 288.78/212.21 (1874) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1875) QDP 288.78/212.21 (1876) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1877) QDP 288.78/212.21 (1878) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1879) QDP 288.78/212.21 (1880) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1881) QDP 288.78/212.21 (1882) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1883) NO 288.78/212.21 (1884) QDP 288.78/212.21 (1885) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1886) QDP 288.78/212.21 (1887) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1888) QDP 288.78/212.21 (1889) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1890) QDP 288.78/212.21 (1891) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1892) QDP 288.78/212.21 (1893) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1894) QDP 288.78/212.21 (1895) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1896) QDP 288.78/212.21 (1897) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1898) QDP 288.78/212.21 (1899) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1900) AND 288.78/212.21 (1901) QDP 288.78/212.21 (1902) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1903) QDP 288.78/212.21 (1904) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1905) QDP 288.78/212.21 (1906) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1907) QDP 288.78/212.21 (1908) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1909) QDP 288.78/212.21 (1910) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1911) QDP 288.78/212.21 (1912) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1913) QDP 288.78/212.21 (1914) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1915) QDP 288.78/212.21 (1916) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1917) QDP 288.78/212.21 (1918) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1919) QDP 288.78/212.21 (1920) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1921) QDP 288.78/212.21 (1922) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.21 (1923) QDP 288.78/212.21 (1924) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.21 (1925) QDP 288.78/212.21 (1926) QDP 288.78/212.21 (1927) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1928) QDP 288.78/212.21 (1929) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1930) QDP 288.78/212.21 (1931) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1932) QDP 288.78/212.21 (1933) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1934) QDP 288.78/212.21 (1935) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1936) QDP 288.78/212.21 (1937) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1938) QDP 288.78/212.21 (1939) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (1940) AND 288.78/212.21 (1941) QDP 288.78/212.21 (1942) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1943) QDP 288.78/212.21 (1944) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1945) QDP 288.78/212.21 (1946) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1947) QDP 288.78/212.21 (1948) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1949) QDP 288.78/212.21 (1950) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1951) QDP 288.78/212.21 (1952) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1953) QDP 288.78/212.21 (1954) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1955) QDP 288.78/212.21 (1956) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1957) QDP 288.78/212.21 (1958) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1959) QDP 288.78/212.21 (1960) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1961) NO 288.78/212.21 (1962) QDP 288.78/212.21 (1963) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1964) QDP 288.78/212.21 (1965) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1966) QDP 288.78/212.21 (1967) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1968) QDP 288.78/212.21 (1969) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1970) QDP 288.78/212.21 (1971) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1972) QDP 288.78/212.21 (1973) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1974) QDP 288.78/212.21 (1975) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1976) QDP 288.78/212.21 (1977) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1978) QDP 288.78/212.21 (1979) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1980) QDP 288.78/212.21 (1981) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1982) QDP 288.78/212.21 (1983) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1984) QDP 288.78/212.21 (1985) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1986) QDP 288.78/212.21 (1987) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (1988) NO 288.78/212.21 (1989) QDP 288.78/212.21 (1990) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1991) QDP 288.78/212.21 (1992) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1993) QDP 288.78/212.21 (1994) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (1995) QDP 288.78/212.21 (1996) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (1997) QDP 288.78/212.21 (1998) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (1999) QDP 288.78/212.21 (2000) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2001) QDP 288.78/212.21 (2002) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2003) QDP 288.78/212.21 (2004) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2005) QDP 288.78/212.21 (2006) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2007) QDP 288.78/212.21 (2008) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (2009) NO 288.78/212.21 (2010) QDP 288.78/212.21 (2011) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2012) QDP 288.78/212.21 (2013) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2014) QDP 288.78/212.21 (2015) TransformationProof [EQUIVALENT, 5 ms] 288.78/212.21 (2016) QDP 288.78/212.21 (2017) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2018) QDP 288.78/212.21 (2019) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2020) QDP 288.78/212.21 (2021) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2022) QDP 288.78/212.21 (2023) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2024) QDP 288.78/212.21 (2025) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2026) AND 288.78/212.21 (2027) QDP 288.78/212.21 (2028) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2029) QDP 288.78/212.21 (2030) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2031) QDP 288.78/212.21 (2032) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2033) QDP 288.78/212.21 (2034) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2035) QDP 288.78/212.21 (2036) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2037) QDP 288.78/212.21 (2038) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2039) QDP 288.78/212.21 (2040) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2041) AND 288.78/212.21 (2042) QDP 288.78/212.21 (2043) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2044) QDP 288.78/212.21 (2045) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2046) QDP 288.78/212.21 (2047) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2048) QDP 288.78/212.21 (2049) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2050) QDP 288.78/212.21 (2051) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2052) QDP 288.78/212.21 (2053) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2054) QDP 288.78/212.21 (2055) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2056) QDP 288.78/212.21 (2057) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2058) AND 288.78/212.21 (2059) QDP 288.78/212.21 (2060) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2061) QDP 288.78/212.21 (2062) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2063) QDP 288.78/212.21 (2064) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2065) QDP 288.78/212.21 (2066) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2067) QDP 288.78/212.21 (2068) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2069) QDP 288.78/212.21 (2070) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2071) QDP 288.78/212.21 (2072) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2073) QDP 288.78/212.21 (2074) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.21 (2075) QDP 288.78/212.21 (2076) QDP 288.78/212.21 (2077) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2078) QDP 288.78/212.21 (2079) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2080) QDP 288.78/212.21 (2081) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2082) QDP 288.78/212.21 (2083) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2084) QDP 288.78/212.21 (2085) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2086) QDP 288.78/212.21 (2087) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2088) QDP 288.78/212.21 (2089) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2090) QDP 288.78/212.21 (2091) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2092) AND 288.78/212.21 (2093) QDP 288.78/212.21 (2094) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2095) QDP 288.78/212.21 (2096) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2097) QDP 288.78/212.21 (2098) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2099) QDP 288.78/212.21 (2100) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2101) QDP 288.78/212.21 (2102) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2103) QDP 288.78/212.21 (2104) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2105) QDP 288.78/212.21 (2106) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2107) QDP 288.78/212.21 (2108) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2109) QDP 288.78/212.21 (2110) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2111) QDP 288.78/212.21 (2112) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (2113) NO 288.78/212.21 (2114) QDP 288.78/212.21 (2115) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2116) QDP 288.78/212.21 (2117) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2118) QDP 288.78/212.21 (2119) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2120) QDP 288.78/212.21 (2121) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2122) QDP 288.78/212.21 (2123) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2124) QDP 288.78/212.21 (2125) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2126) QDP 288.78/212.21 (2127) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2128) QDP 288.78/212.21 (2129) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2130) QDP 288.78/212.21 (2131) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2132) QDP 288.78/212.21 (2133) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2134) QDP 288.78/212.21 (2135) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2136) QDP 288.78/212.21 (2137) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2138) QDP 288.78/212.21 (2139) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (2140) NO 288.78/212.21 (2141) QDP 288.78/212.21 (2142) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2143) QDP 288.78/212.21 (2144) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2145) QDP 288.78/212.21 (2146) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2147) QDP 288.78/212.21 (2148) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2149) QDP 288.78/212.21 (2150) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2151) QDP 288.78/212.21 (2152) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2153) QDP 288.78/212.21 (2154) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2155) QDP 288.78/212.21 (2156) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2157) QDP 288.78/212.21 (2158) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2159) QDP 288.78/212.21 (2160) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (2161) NO 288.78/212.21 (2162) QDP 288.78/212.21 (2163) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2164) QDP 288.78/212.21 (2165) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2166) QDP 288.78/212.21 (2167) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2168) QDP 288.78/212.21 (2169) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2170) QDP 288.78/212.21 (2171) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2172) QDP 288.78/212.21 (2173) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2174) QDP 288.78/212.21 (2175) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2176) QDP 288.78/212.21 (2177) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2178) QDP 288.78/212.21 (2179) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2180) QDP 288.78/212.21 (2181) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2182) QDP 288.78/212.21 (2183) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2184) QDP 288.78/212.21 (2185) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2186) QDP 288.78/212.21 (2187) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2188) QDP 288.78/212.21 (2189) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2190) QDP 288.78/212.21 (2191) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2192) AND 288.78/212.21 (2193) QDP 288.78/212.21 (2194) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2195) QDP 288.78/212.21 (2196) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2197) QDP 288.78/212.21 (2198) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2199) QDP 288.78/212.21 (2200) MNOCProof [EQUIVALENT, 0 ms] 288.78/212.21 (2201) QDP 288.78/212.21 (2202) NonTerminationLoopProof [COMPLETE, 424 ms] 288.78/212.21 (2203) NO 288.78/212.21 (2204) QDP 288.78/212.21 (2205) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2206) QDP 288.78/212.21 (2207) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2208) QDP 288.78/212.21 (2209) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2210) QDP 288.78/212.21 (2211) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2212) QDP 288.78/212.21 (2213) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2214) QDP 288.78/212.21 (2215) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2216) QDP 288.78/212.21 (2217) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2218) QDP 288.78/212.21 (2219) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2220) QDP 288.78/212.21 (2221) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2222) QDP 288.78/212.21 (2223) NonTerminationLoopProof [COMPLETE, 0 ms] 288.78/212.21 (2224) NO 288.78/212.21 (2225) QDP 288.78/212.21 (2226) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2227) QDP 288.78/212.21 (2228) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2229) QDP 288.78/212.21 (2230) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2231) QDP 288.78/212.21 (2232) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2233) QDP 288.78/212.21 (2234) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2235) QDP 288.78/212.21 (2236) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2237) QDP 288.78/212.21 (2238) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2239) AND 288.78/212.21 (2240) QDP 288.78/212.21 (2241) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2242) QDP 288.78/212.21 (2243) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2244) QDP 288.78/212.21 (2245) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2246) QDP 288.78/212.21 (2247) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2248) QDP 288.78/212.21 (2249) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2250) QDP 288.78/212.21 (2251) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2252) QDP 288.78/212.21 (2253) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2254) QDP 288.78/212.21 (2255) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2256) QDP 288.78/212.21 (2257) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2258) QDP 288.78/212.21 (2259) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2260) QDP 288.78/212.21 (2261) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2262) QDP 288.78/212.21 (2263) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2264) QDP 288.78/212.21 (2265) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2266) QDP 288.78/212.21 (2267) InductionCalculusProof [EQUIVALENT, 0 ms] 288.78/212.21 (2268) QDP 288.78/212.21 (2269) QDP 288.78/212.21 (2270) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2271) QDP 288.78/212.21 (2272) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2273) QDP 288.78/212.21 (2274) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2275) QDP 288.78/212.21 (2276) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2277) QDP 288.78/212.21 (2278) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2279) QDP 288.78/212.21 (2280) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2281) QDP 288.78/212.21 (2282) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2283) QDP 288.78/212.21 (2284) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2285) QDP 288.78/212.21 (2286) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2287) QDP 288.78/212.21 (2288) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2289) QDP 288.78/212.21 (2290) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2291) QDP 288.78/212.21 (2292) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2293) AND 288.78/212.21 (2294) QDP 288.78/212.21 (2295) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2296) QDP 288.78/212.21 (2297) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2298) QDP 288.78/212.21 (2299) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2300) QDP 288.78/212.21 (2301) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2302) QDP 288.78/212.21 (2303) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2304) QDP 288.78/212.21 (2305) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2306) QDP 288.78/212.21 (2307) DependencyGraphProof [EQUIVALENT, 0 ms] 288.78/212.21 (2308) AND 288.78/212.21 (2309) QDP 288.78/212.21 (2310) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2311) QDP 288.78/212.21 (2312) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2313) QDP 288.78/212.21 (2314) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2315) QDP 288.78/212.21 (2316) QDPSizeChangeProof [EQUIVALENT, 0 ms] 288.78/212.21 (2317) YES 288.78/212.21 (2318) QDP 288.78/212.21 (2319) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2320) QDP 288.78/212.21 (2321) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2322) QDP 288.78/212.21 (2323) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2324) QDP 288.78/212.21 (2325) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2326) QDP 288.78/212.21 (2327) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2328) QDP 288.78/212.21 (2329) TransformationProof [EQUIVALENT, 0 ms] 288.78/212.21 (2330) QDP 288.78/212.21 (2331) UsableRulesProof [EQUIVALENT, 0 ms] 288.78/212.21 (2332) QDP 288.78/212.21 (2333) QReductionProof [EQUIVALENT, 0 ms] 288.78/212.21 (2334) QDP 291.74/212.98 (2335) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2336) QDP 291.74/212.98 (2337) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.98 (2338) YES 291.74/212.98 (2339) QDP 291.74/212.98 (2340) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2341) QDP 291.74/212.98 (2342) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2343) QDP 291.74/212.98 (2344) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2345) QDP 291.74/212.98 (2346) DependencyGraphProof [EQUIVALENT, 0 ms] 291.74/212.98 (2347) AND 291.74/212.98 (2348) QDP 291.74/212.98 (2349) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2350) QDP 291.74/212.98 (2351) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2352) QDP 291.74/212.98 (2353) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2354) QDP 291.74/212.98 (2355) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2356) QDP 291.74/212.98 (2357) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2358) QDP 291.74/212.98 (2359) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2360) QDP 291.74/212.98 (2361) DependencyGraphProof [EQUIVALENT, 0 ms] 291.74/212.98 (2362) AND 291.74/212.98 (2363) QDP 291.74/212.98 (2364) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2365) QDP 291.74/212.98 (2366) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2367) QDP 291.74/212.98 (2368) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2369) QDP 291.74/212.98 (2370) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.98 (2371) YES 291.74/212.98 (2372) QDP 291.74/212.98 (2373) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2374) QDP 291.74/212.98 (2375) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2376) QDP 291.74/212.98 (2377) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2378) QDP 291.74/212.98 (2379) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2380) QDP 291.74/212.98 (2381) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2382) QDP 291.74/212.98 (2383) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2384) QDP 291.74/212.98 (2385) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2386) QDP 291.74/212.98 (2387) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2388) QDP 291.74/212.98 (2389) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2390) QDP 291.74/212.98 (2391) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.98 (2392) YES 291.74/212.98 (2393) QDP 291.74/212.98 (2394) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2395) QDP 291.74/212.98 (2396) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2397) QDP 291.74/212.98 (2398) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2399) QDP 291.74/212.98 (2400) DependencyGraphProof [EQUIVALENT, 0 ms] 291.74/212.98 (2401) AND 291.74/212.98 (2402) QDP 291.74/212.98 (2403) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2404) QDP 291.74/212.98 (2405) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2406) QDP 291.74/212.98 (2407) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2408) QDP 291.74/212.98 (2409) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2410) QDP 291.74/212.98 (2411) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2412) QDP 291.74/212.98 (2413) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2414) QDP 291.74/212.98 (2415) DependencyGraphProof [EQUIVALENT, 0 ms] 291.74/212.98 (2416) AND 291.74/212.98 (2417) QDP 291.74/212.98 (2418) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2419) QDP 291.74/212.98 (2420) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2421) QDP 291.74/212.98 (2422) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2423) QDP 291.74/212.98 (2424) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.98 (2425) YES 291.74/212.98 (2426) QDP 291.74/212.98 (2427) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2428) QDP 291.74/212.98 (2429) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2430) QDP 291.74/212.98 (2431) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.98 (2432) QDP 291.74/212.98 (2433) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.98 (2434) QDP 291.74/212.98 (2435) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.98 (2436) QDP 291.74/212.99 (2437) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2438) QDP 291.74/212.99 (2439) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.99 (2440) QDP 291.74/212.99 (2441) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.99 (2442) QDP 291.74/212.99 (2443) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2444) QDP 291.74/212.99 (2445) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.99 (2446) YES 291.74/212.99 (2447) QDP 291.74/212.99 (2448) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2449) QDP 291.74/212.99 (2450) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2451) QDP 291.74/212.99 (2452) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2453) QDP 291.74/212.99 (2454) DependencyGraphProof [EQUIVALENT, 0 ms] 291.74/212.99 (2455) AND 291.74/212.99 (2456) QDP 291.74/212.99 (2457) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.99 (2458) QDP 291.74/212.99 (2459) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.99 (2460) QDP 291.74/212.99 (2461) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2462) QDP 291.74/212.99 (2463) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2464) QDP 291.74/212.99 (2465) UsableRulesProof [EQUIVALENT, 0 ms] 291.74/212.99 (2466) QDP 291.74/212.99 (2467) QReductionProof [EQUIVALENT, 0 ms] 291.74/212.99 (2468) QDP 291.74/212.99 (2469) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2470) QDP 291.74/212.99 (2471) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.99 (2472) YES 291.74/212.99 (2473) QDP 291.74/212.99 (2474) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2475) QDP 291.74/212.99 (2476) TransformationProof [EQUIVALENT, 0 ms] 291.74/212.99 (2477) QDP 291.74/212.99 (2478) QDPSizeChangeProof [EQUIVALENT, 0 ms] 291.74/212.99 (2479) YES 291.74/212.99 (2480) Narrow [COMPLETE, 0 ms] 291.74/212.99 (2481) TRUE 291.74/212.99 291.74/212.99 291.74/212.99 ---------------------------------------- 291.74/212.99 291.74/212.99 (0) 291.74/212.99 Obligation: 291.74/212.99 mainModule Main 291.74/212.99 module Main where { 291.74/212.99 import qualified Prelude; 291.74/212.99 data List a = Cons a (List a) | Nil ; 291.74/212.99 291.74/212.99 data MyBool = MyTrue | MyFalse ; 291.74/212.99 291.74/212.99 data MyInt = Pos Main.Nat | Neg Main.Nat ; 291.74/212.99 291.74/212.99 data Main.Nat = Succ Main.Nat | Zero ; 291.74/212.99 291.74/212.99 data Ordering = LT | EQ | GT ; 291.74/212.99 291.74/212.99 data Ratio a = CnPc a a ; 291.74/212.99 291.74/212.99 data Tup2 b a = Tup2 b a ; 291.74/212.99 291.74/212.99 compareMyInt :: MyInt -> MyInt -> Ordering; 291.74/212.99 compareMyInt = primCmpInt; 291.74/212.99 291.74/212.99 enumFromThenToMyInt :: MyInt -> MyInt -> MyInt -> List MyInt; 291.74/212.99 enumFromThenToMyInt = numericEnumFromThenTo; 291.74/212.99 291.74/212.99 enumFromThenToRatio :: Ratio MyInt -> Ratio MyInt -> Ratio MyInt -> List (Ratio MyInt); 291.74/212.99 enumFromThenToRatio x y z = map toEnumRatio (enumFromThenToMyInt (fromEnumRatio x) (fromEnumRatio y) (fromEnumRatio z)); 291.74/212.99 291.74/212.99 error :: a; 291.74/212.99 error = stop MyTrue; 291.74/212.99 291.74/212.99 esEsOrdering :: Ordering -> Ordering -> MyBool; 291.74/212.99 esEsOrdering LT LT = MyTrue; 291.74/212.99 esEsOrdering LT EQ = MyFalse; 291.74/212.99 esEsOrdering LT GT = MyFalse; 291.74/212.99 esEsOrdering EQ LT = MyFalse; 291.74/212.99 esEsOrdering EQ EQ = MyTrue; 291.74/212.99 esEsOrdering EQ GT = MyFalse; 291.74/212.99 esEsOrdering GT LT = MyFalse; 291.74/212.99 esEsOrdering GT EQ = MyFalse; 291.74/212.99 esEsOrdering GT GT = MyTrue; 291.74/212.99 291.74/212.99 flip :: (c -> a -> b) -> a -> c -> b; 291.74/212.99 flip f x y = f y x; 291.74/212.99 291.74/212.99 fromEnumRatio :: Ratio MyInt -> MyInt; 291.74/212.99 fromEnumRatio = truncateRatio; 291.74/212.99 291.74/212.99 fromIntMyInt :: MyInt -> MyInt; 291.74/212.99 fromIntMyInt x = x; 291.74/212.99 291.74/212.99 fromIntRatio :: MyInt -> Ratio MyInt; 291.74/212.99 fromIntRatio = intToRatio; 291.74/212.99 291.74/212.99 fsEsOrdering :: Ordering -> Ordering -> MyBool; 291.74/212.99 fsEsOrdering x y = not (esEsOrdering x y); 291.74/212.99 291.74/212.99 gtEsMyInt :: MyInt -> MyInt -> MyBool; 291.74/212.99 gtEsMyInt x y = fsEsOrdering (compareMyInt x y) LT; 291.74/212.99 291.74/212.99 intToRatio x = CnPc (fromIntMyInt x) (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))); 291.74/212.99 291.74/212.99 iterate :: (a -> a) -> a -> List a; 291.74/212.99 iterate f x = Cons x (iterate f (f x)); 291.74/212.99 291.74/212.99 ltEsMyInt :: MyInt -> MyInt -> MyBool; 291.74/212.99 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 291.74/212.99 291.74/212.99 map :: (b -> a) -> List b -> List a; 291.74/212.99 map f Nil = Nil; 291.74/212.99 map f (Cons x xs) = Cons (f x) (map f xs); 291.74/212.99 291.74/212.99 msMyInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 msMyInt = primMinusInt; 291.74/212.99 291.74/212.99 not :: MyBool -> MyBool; 291.74/212.99 not MyTrue = MyFalse; 291.74/212.99 not MyFalse = MyTrue; 291.74/212.99 291.74/212.99 numericEnumFromThen n m = iterate (psMyInt (msMyInt m n)) n; 291.74/212.99 291.74/212.99 numericEnumFromThenTo n n' m = takeWhile (numericEnumFromThenToP m n' n) (numericEnumFromThen n n'); 291.74/212.99 291.74/212.99 numericEnumFromThenToP yv yw yx = numericEnumFromThenToP2 yv yw yx; 291.74/212.99 291.74/212.99 numericEnumFromThenToP0 yv yw yx MyTrue = flip gtEsMyInt yv; 291.74/212.99 291.74/212.99 numericEnumFromThenToP1 yv yw yx MyTrue = flip ltEsMyInt yv; 291.74/212.99 numericEnumFromThenToP1 yv yw yx MyFalse = numericEnumFromThenToP0 yv yw yx otherwise; 291.74/212.99 291.74/212.99 numericEnumFromThenToP2 yv yw yx = numericEnumFromThenToP1 yv yw yx (gtEsMyInt yw yx); 291.74/212.99 291.74/212.99 otherwise :: MyBool; 291.74/212.99 otherwise = MyTrue; 291.74/212.99 291.74/212.99 primCmpInt :: MyInt -> MyInt -> Ordering; 291.74/212.99 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 291.74/212.99 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 291.74/212.99 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 291.74/212.99 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 291.74/212.99 291.74/212.99 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 291.74/212.99 primCmpNat Main.Zero Main.Zero = EQ; 291.74/212.99 primCmpNat Main.Zero (Main.Succ y) = LT; 291.74/212.99 primCmpNat (Main.Succ x) Main.Zero = GT; 291.74/212.99 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 291.74/212.99 291.74/212.99 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primDivNatS Main.Zero Main.Zero = Main.error; 291.74/212.99 primDivNatS (Main.Succ x) Main.Zero = Main.error; 291.74/212.99 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 291.74/212.99 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 291.74/212.99 291.74/212.99 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 291.74/212.99 primDivNatS0 x y MyFalse = Main.Zero; 291.74/212.99 291.74/212.99 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 291.74/212.99 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 291.74/212.99 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 291.74/212.99 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 291.74/212.99 primGEqNatS Main.Zero Main.Zero = MyTrue; 291.74/212.99 291.74/212.99 primMinusInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 291.74/212.99 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 291.74/212.99 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 291.74/212.99 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 291.74/212.99 291.74/212.99 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 291.74/212.99 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 291.74/212.99 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 291.74/212.99 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 291.74/212.99 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 291.74/212.99 291.74/212.99 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 291.74/212.99 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 291.74/212.99 primMinusNatS x Main.Zero = x; 291.74/212.99 291.74/212.99 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primModNatS Main.Zero Main.Zero = Main.error; 291.74/212.99 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 291.74/212.99 primModNatS (Main.Succ x) Main.Zero = Main.error; 291.74/212.99 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 291.74/212.99 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 291.74/212.99 291.74/212.99 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 291.74/212.99 primModNatS0 x y MyFalse = Main.Succ x; 291.74/212.99 291.74/212.99 primPlusInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 291.74/212.99 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 291.74/212.99 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 291.74/212.99 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 291.74/212.99 291.74/212.99 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primPlusNat Main.Zero Main.Zero = Main.Zero; 291.74/212.99 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 291.74/212.99 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 291.74/212.99 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 291.74/212.99 291.74/212.99 primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; 291.74/212.99 primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); 291.74/212.99 291.74/212.99 primQuotInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 291.74/212.99 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 291.74/212.99 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 291.74/212.99 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 291.74/212.99 primQuotInt ww wx = Main.error; 291.74/212.99 291.74/212.99 primRemInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 291.74/212.99 primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 291.74/212.99 primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 291.74/212.99 primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 291.74/212.99 primRemInt vy vz = Main.error; 291.74/212.99 291.74/212.99 properFractionQ xz yu = properFractionQ1 xz yu (properFractionVu30 xz yu); 291.74/212.99 291.74/212.99 properFractionQ1 xz yu (Tup2 q vw) = q; 291.74/212.99 291.74/212.99 properFractionR xz yu = properFractionR0 xz yu (properFractionVu30 xz yu); 291.74/212.99 291.74/212.99 properFractionR0 xz yu (Tup2 vx r) = r; 291.74/212.99 291.74/212.99 properFractionRatio :: Ratio MyInt -> Tup2 MyInt (Ratio MyInt); 291.74/212.99 properFractionRatio (CnPc x y) = Tup2 (properFractionQ x y) (CnPc (properFractionR x y) y); 291.74/212.99 291.74/212.99 properFractionVu30 xz yu = quotRemMyInt xz yu; 291.74/212.99 291.74/212.99 psMyInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 psMyInt = primPlusInt; 291.74/212.99 291.74/212.99 quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; 291.74/212.99 quotRemMyInt = primQrmInt; 291.74/212.99 291.74/212.99 stop :: MyBool -> a; 291.74/212.99 stop MyFalse = stop MyFalse; 291.74/212.99 291.74/212.99 takeWhile :: (a -> MyBool) -> List a -> List a; 291.74/212.99 takeWhile p Nil = takeWhile3 p Nil; 291.74/212.99 takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); 291.74/212.99 291.74/212.99 takeWhile0 p x xs MyTrue = Nil; 291.74/212.99 291.74/212.99 takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); 291.74/212.99 takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; 291.74/212.99 291.74/212.99 takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); 291.74/212.99 291.74/212.99 takeWhile3 p Nil = Nil; 291.74/212.99 takeWhile3 xw xx = takeWhile2 xw xx; 291.74/212.99 291.74/212.99 toEnumRatio :: MyInt -> Ratio MyInt; 291.74/212.99 toEnumRatio = fromIntRatio; 291.74/212.99 291.74/212.99 truncateM xy = truncateM0 xy (truncateVu6 xy); 291.74/212.99 291.74/212.99 truncateM0 xy (Tup2 m vv) = m; 291.74/212.99 291.74/212.99 truncateRatio :: Ratio MyInt -> MyInt; 291.74/212.99 truncateRatio x = truncateM x; 291.74/212.99 291.74/212.99 truncateVu6 xy = properFractionRatio xy; 291.74/212.99 291.74/212.99 } 291.74/212.99 291.74/212.99 ---------------------------------------- 291.74/212.99 291.74/212.99 (1) BR (EQUIVALENT) 291.74/212.99 Replaced joker patterns by fresh variables and removed binding patterns. 291.74/212.99 ---------------------------------------- 291.74/212.99 291.74/212.99 (2) 291.74/212.99 Obligation: 291.74/212.99 mainModule Main 291.74/212.99 module Main where { 291.74/212.99 import qualified Prelude; 291.74/212.99 data List a = Cons a (List a) | Nil ; 291.74/212.99 291.74/212.99 data MyBool = MyTrue | MyFalse ; 291.74/212.99 291.74/212.99 data MyInt = Pos Main.Nat | Neg Main.Nat ; 291.74/212.99 291.74/212.99 data Main.Nat = Succ Main.Nat | Zero ; 291.74/212.99 291.74/212.99 data Ordering = LT | EQ | GT ; 291.74/212.99 291.74/212.99 data Ratio a = CnPc a a ; 291.74/212.99 291.74/212.99 data Tup2 b a = Tup2 b a ; 291.74/212.99 291.74/212.99 compareMyInt :: MyInt -> MyInt -> Ordering; 291.74/212.99 compareMyInt = primCmpInt; 291.74/212.99 291.74/212.99 enumFromThenToMyInt :: MyInt -> MyInt -> MyInt -> List MyInt; 291.74/212.99 enumFromThenToMyInt = numericEnumFromThenTo; 291.74/212.99 291.74/212.99 enumFromThenToRatio :: Ratio MyInt -> Ratio MyInt -> Ratio MyInt -> List (Ratio MyInt); 291.74/212.99 enumFromThenToRatio x y z = map toEnumRatio (enumFromThenToMyInt (fromEnumRatio x) (fromEnumRatio y) (fromEnumRatio z)); 291.74/212.99 291.74/212.99 error :: a; 291.74/212.99 error = stop MyTrue; 291.74/212.99 291.74/212.99 esEsOrdering :: Ordering -> Ordering -> MyBool; 291.74/212.99 esEsOrdering LT LT = MyTrue; 291.74/212.99 esEsOrdering LT EQ = MyFalse; 291.74/212.99 esEsOrdering LT GT = MyFalse; 291.74/212.99 esEsOrdering EQ LT = MyFalse; 291.74/212.99 esEsOrdering EQ EQ = MyTrue; 291.74/212.99 esEsOrdering EQ GT = MyFalse; 291.74/212.99 esEsOrdering GT LT = MyFalse; 291.74/212.99 esEsOrdering GT EQ = MyFalse; 291.74/212.99 esEsOrdering GT GT = MyTrue; 291.74/212.99 291.74/212.99 flip :: (b -> a -> c) -> a -> b -> c; 291.74/212.99 flip f x y = f y x; 291.74/212.99 291.74/212.99 fromEnumRatio :: Ratio MyInt -> MyInt; 291.74/212.99 fromEnumRatio = truncateRatio; 291.74/212.99 291.74/212.99 fromIntMyInt :: MyInt -> MyInt; 291.74/212.99 fromIntMyInt x = x; 291.74/212.99 291.74/212.99 fromIntRatio :: MyInt -> Ratio MyInt; 291.74/212.99 fromIntRatio = intToRatio; 291.74/212.99 291.74/212.99 fsEsOrdering :: Ordering -> Ordering -> MyBool; 291.74/212.99 fsEsOrdering x y = not (esEsOrdering x y); 291.74/212.99 291.74/212.99 gtEsMyInt :: MyInt -> MyInt -> MyBool; 291.74/212.99 gtEsMyInt x y = fsEsOrdering (compareMyInt x y) LT; 291.74/212.99 291.74/212.99 intToRatio x = CnPc (fromIntMyInt x) (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))); 291.74/212.99 291.74/212.99 iterate :: (a -> a) -> a -> List a; 291.74/212.99 iterate f x = Cons x (iterate f (f x)); 291.74/212.99 291.74/212.99 ltEsMyInt :: MyInt -> MyInt -> MyBool; 291.74/212.99 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 291.74/212.99 291.74/212.99 map :: (a -> b) -> List a -> List b; 291.74/212.99 map f Nil = Nil; 291.74/212.99 map f (Cons x xs) = Cons (f x) (map f xs); 291.74/212.99 291.74/212.99 msMyInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 msMyInt = primMinusInt; 291.74/212.99 291.74/212.99 not :: MyBool -> MyBool; 291.74/212.99 not MyTrue = MyFalse; 291.74/212.99 not MyFalse = MyTrue; 291.74/212.99 291.74/212.99 numericEnumFromThen n m = iterate (psMyInt (msMyInt m n)) n; 291.74/212.99 291.74/212.99 numericEnumFromThenTo n n' m = takeWhile (numericEnumFromThenToP m n' n) (numericEnumFromThen n n'); 291.74/212.99 291.74/212.99 numericEnumFromThenToP yv yw yx = numericEnumFromThenToP2 yv yw yx; 291.74/212.99 291.74/212.99 numericEnumFromThenToP0 yv yw yx MyTrue = flip gtEsMyInt yv; 291.74/212.99 291.74/212.99 numericEnumFromThenToP1 yv yw yx MyTrue = flip ltEsMyInt yv; 291.74/212.99 numericEnumFromThenToP1 yv yw yx MyFalse = numericEnumFromThenToP0 yv yw yx otherwise; 291.74/212.99 291.74/212.99 numericEnumFromThenToP2 yv yw yx = numericEnumFromThenToP1 yv yw yx (gtEsMyInt yw yx); 291.74/212.99 291.74/212.99 otherwise :: MyBool; 291.74/212.99 otherwise = MyTrue; 291.74/212.99 291.74/212.99 primCmpInt :: MyInt -> MyInt -> Ordering; 291.74/212.99 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 291.74/212.99 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 291.74/212.99 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 291.74/212.99 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 291.74/212.99 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 291.74/212.99 291.74/212.99 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 291.74/212.99 primCmpNat Main.Zero Main.Zero = EQ; 291.74/212.99 primCmpNat Main.Zero (Main.Succ y) = LT; 291.74/212.99 primCmpNat (Main.Succ x) Main.Zero = GT; 291.74/212.99 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 291.74/212.99 291.74/212.99 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primDivNatS Main.Zero Main.Zero = Main.error; 291.74/212.99 primDivNatS (Main.Succ x) Main.Zero = Main.error; 291.74/212.99 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 291.74/212.99 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 291.74/212.99 291.74/212.99 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 291.74/212.99 primDivNatS0 x y MyFalse = Main.Zero; 291.74/212.99 291.74/212.99 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 291.74/212.99 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 291.74/212.99 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 291.74/212.99 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 291.74/212.99 primGEqNatS Main.Zero Main.Zero = MyTrue; 291.74/212.99 291.74/212.99 primMinusInt :: MyInt -> MyInt -> MyInt; 291.74/212.99 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 291.74/212.99 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 291.74/212.99 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 291.74/212.99 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 291.74/212.99 291.74/212.99 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 291.74/212.99 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 291.74/212.99 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 291.74/212.99 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 291.74/212.99 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 291.74/212.99 291.74/212.99 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 291.74/212.99 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 291.74/212.99 primMinusNatS x Main.Zero = x; 291.74/212.99 291.74/212.99 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/212.99 primModNatS Main.Zero Main.Zero = Main.error; 291.74/212.99 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 291.74/212.99 primModNatS (Main.Succ x) Main.Zero = Main.error; 291.74/212.99 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 291.74/212.99 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 291.74/213.00 291.74/213.00 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 291.74/213.00 primModNatS0 x y MyFalse = Main.Succ x; 291.74/213.00 291.74/213.00 primPlusInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 291.74/213.00 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 291.74/213.00 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 291.74/213.00 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 291.74/213.00 291.74/213.00 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/213.00 primPlusNat Main.Zero Main.Zero = Main.Zero; 291.74/213.00 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 291.74/213.00 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 291.74/213.00 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 291.74/213.00 291.74/213.00 primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; 291.74/213.00 primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); 291.74/213.00 291.74/213.00 primQuotInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt ww wx = Main.error; 291.74/213.00 291.74/213.00 primRemInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt vy vz = Main.error; 291.74/213.00 291.74/213.00 properFractionQ xz yu = properFractionQ1 xz yu (properFractionVu30 xz yu); 291.74/213.00 291.74/213.00 properFractionQ1 xz yu (Tup2 q vw) = q; 291.74/213.00 291.74/213.00 properFractionR xz yu = properFractionR0 xz yu (properFractionVu30 xz yu); 291.74/213.00 291.74/213.00 properFractionR0 xz yu (Tup2 vx r) = r; 291.74/213.00 291.74/213.00 properFractionRatio :: Ratio MyInt -> Tup2 MyInt (Ratio MyInt); 291.74/213.00 properFractionRatio (CnPc x y) = Tup2 (properFractionQ x y) (CnPc (properFractionR x y) y); 291.74/213.00 291.74/213.00 properFractionVu30 xz yu = quotRemMyInt xz yu; 291.74/213.00 291.74/213.00 psMyInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 psMyInt = primPlusInt; 291.74/213.00 291.74/213.00 quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; 291.74/213.00 quotRemMyInt = primQrmInt; 291.74/213.00 291.74/213.00 stop :: MyBool -> a; 291.74/213.00 stop MyFalse = stop MyFalse; 291.74/213.00 291.74/213.00 takeWhile :: (a -> MyBool) -> List a -> List a; 291.74/213.00 takeWhile p Nil = takeWhile3 p Nil; 291.74/213.00 takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); 291.74/213.00 291.74/213.00 takeWhile0 p x xs MyTrue = Nil; 291.74/213.00 291.74/213.00 takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); 291.74/213.00 takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; 291.74/213.00 291.74/213.00 takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); 291.74/213.00 291.74/213.00 takeWhile3 p Nil = Nil; 291.74/213.00 takeWhile3 xw xx = takeWhile2 xw xx; 291.74/213.00 291.74/213.00 toEnumRatio :: MyInt -> Ratio MyInt; 291.74/213.00 toEnumRatio = fromIntRatio; 291.74/213.00 291.74/213.00 truncateM xy = truncateM0 xy (truncateVu6 xy); 291.74/213.00 291.74/213.00 truncateM0 xy (Tup2 m vv) = m; 291.74/213.00 291.74/213.00 truncateRatio :: Ratio MyInt -> MyInt; 291.74/213.00 truncateRatio x = truncateM x; 291.74/213.00 291.74/213.00 truncateVu6 xy = properFractionRatio xy; 291.74/213.00 291.74/213.00 } 291.74/213.00 291.74/213.00 ---------------------------------------- 291.74/213.00 291.74/213.00 (3) COR (EQUIVALENT) 291.74/213.00 Cond Reductions: 291.74/213.00 The following Function with conditions 291.74/213.00 "undefined |Falseundefined; 291.74/213.00 " 291.74/213.00 is transformed to 291.74/213.00 "undefined = undefined1; 291.74/213.00 " 291.74/213.00 "undefined0 True = undefined; 291.74/213.00 " 291.74/213.00 "undefined1 = undefined0 False; 291.74/213.00 " 291.74/213.00 291.74/213.00 ---------------------------------------- 291.74/213.00 291.74/213.00 (4) 291.74/213.00 Obligation: 291.74/213.00 mainModule Main 291.74/213.00 module Main where { 291.74/213.00 import qualified Prelude; 291.74/213.00 data List a = Cons a (List a) | Nil ; 291.74/213.00 291.74/213.00 data MyBool = MyTrue | MyFalse ; 291.74/213.00 291.74/213.00 data MyInt = Pos Main.Nat | Neg Main.Nat ; 291.74/213.00 291.74/213.00 data Main.Nat = Succ Main.Nat | Zero ; 291.74/213.00 291.74/213.00 data Ordering = LT | EQ | GT ; 291.74/213.00 291.74/213.00 data Ratio a = CnPc a a ; 291.74/213.00 291.74/213.00 data Tup2 a b = Tup2 a b ; 291.74/213.00 291.74/213.00 compareMyInt :: MyInt -> MyInt -> Ordering; 291.74/213.00 compareMyInt = primCmpInt; 291.74/213.00 291.74/213.00 enumFromThenToMyInt :: MyInt -> MyInt -> MyInt -> List MyInt; 291.74/213.00 enumFromThenToMyInt = numericEnumFromThenTo; 291.74/213.00 291.74/213.00 enumFromThenToRatio :: Ratio MyInt -> Ratio MyInt -> Ratio MyInt -> List (Ratio MyInt); 291.74/213.00 enumFromThenToRatio x y z = map toEnumRatio (enumFromThenToMyInt (fromEnumRatio x) (fromEnumRatio y) (fromEnumRatio z)); 291.74/213.00 291.74/213.00 error :: a; 291.74/213.00 error = stop MyTrue; 291.74/213.00 291.74/213.00 esEsOrdering :: Ordering -> Ordering -> MyBool; 291.74/213.00 esEsOrdering LT LT = MyTrue; 291.74/213.00 esEsOrdering LT EQ = MyFalse; 291.74/213.00 esEsOrdering LT GT = MyFalse; 291.74/213.00 esEsOrdering EQ LT = MyFalse; 291.74/213.00 esEsOrdering EQ EQ = MyTrue; 291.74/213.00 esEsOrdering EQ GT = MyFalse; 291.74/213.00 esEsOrdering GT LT = MyFalse; 291.74/213.00 esEsOrdering GT EQ = MyFalse; 291.74/213.00 esEsOrdering GT GT = MyTrue; 291.74/213.00 291.74/213.00 flip :: (b -> c -> a) -> c -> b -> a; 291.74/213.00 flip f x y = f y x; 291.74/213.00 291.74/213.00 fromEnumRatio :: Ratio MyInt -> MyInt; 291.74/213.00 fromEnumRatio = truncateRatio; 291.74/213.00 291.74/213.00 fromIntMyInt :: MyInt -> MyInt; 291.74/213.00 fromIntMyInt x = x; 291.74/213.00 291.74/213.00 fromIntRatio :: MyInt -> Ratio MyInt; 291.74/213.00 fromIntRatio = intToRatio; 291.74/213.00 291.74/213.00 fsEsOrdering :: Ordering -> Ordering -> MyBool; 291.74/213.00 fsEsOrdering x y = not (esEsOrdering x y); 291.74/213.00 291.74/213.00 gtEsMyInt :: MyInt -> MyInt -> MyBool; 291.74/213.00 gtEsMyInt x y = fsEsOrdering (compareMyInt x y) LT; 291.74/213.00 291.74/213.00 intToRatio x = CnPc (fromIntMyInt x) (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))); 291.74/213.00 291.74/213.00 iterate :: (a -> a) -> a -> List a; 291.74/213.00 iterate f x = Cons x (iterate f (f x)); 291.74/213.00 291.74/213.00 ltEsMyInt :: MyInt -> MyInt -> MyBool; 291.74/213.00 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 291.74/213.00 291.74/213.00 map :: (b -> a) -> List b -> List a; 291.74/213.00 map f Nil = Nil; 291.74/213.00 map f (Cons x xs) = Cons (f x) (map f xs); 291.74/213.00 291.74/213.00 msMyInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 msMyInt = primMinusInt; 291.74/213.00 291.74/213.00 not :: MyBool -> MyBool; 291.74/213.00 not MyTrue = MyFalse; 291.74/213.00 not MyFalse = MyTrue; 291.74/213.00 291.74/213.00 numericEnumFromThen n m = iterate (psMyInt (msMyInt m n)) n; 291.74/213.00 291.74/213.00 numericEnumFromThenTo n n' m = takeWhile (numericEnumFromThenToP m n' n) (numericEnumFromThen n n'); 291.74/213.00 291.74/213.00 numericEnumFromThenToP yv yw yx = numericEnumFromThenToP2 yv yw yx; 291.74/213.00 291.74/213.00 numericEnumFromThenToP0 yv yw yx MyTrue = flip gtEsMyInt yv; 291.74/213.00 291.74/213.00 numericEnumFromThenToP1 yv yw yx MyTrue = flip ltEsMyInt yv; 291.74/213.00 numericEnumFromThenToP1 yv yw yx MyFalse = numericEnumFromThenToP0 yv yw yx otherwise; 291.74/213.00 291.74/213.00 numericEnumFromThenToP2 yv yw yx = numericEnumFromThenToP1 yv yw yx (gtEsMyInt yw yx); 291.74/213.00 291.74/213.00 otherwise :: MyBool; 291.74/213.00 otherwise = MyTrue; 291.74/213.00 291.74/213.00 primCmpInt :: MyInt -> MyInt -> Ordering; 291.74/213.00 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 291.74/213.00 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 291.74/213.00 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 291.74/213.00 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 291.74/213.00 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 291.74/213.00 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 291.74/213.00 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 291.74/213.00 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 291.74/213.00 291.74/213.00 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 291.74/213.00 primCmpNat Main.Zero Main.Zero = EQ; 291.74/213.00 primCmpNat Main.Zero (Main.Succ y) = LT; 291.74/213.00 primCmpNat (Main.Succ x) Main.Zero = GT; 291.74/213.00 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 291.74/213.00 291.74/213.00 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/213.00 primDivNatS Main.Zero Main.Zero = Main.error; 291.74/213.00 primDivNatS (Main.Succ x) Main.Zero = Main.error; 291.74/213.00 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 291.74/213.00 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 291.74/213.00 291.74/213.00 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 291.74/213.00 primDivNatS0 x y MyFalse = Main.Zero; 291.74/213.00 291.74/213.00 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 291.74/213.00 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 291.74/213.00 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 291.74/213.00 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 291.74/213.00 primGEqNatS Main.Zero Main.Zero = MyTrue; 291.74/213.00 291.74/213.00 primMinusInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 291.74/213.00 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 291.74/213.00 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 291.74/213.00 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 291.74/213.00 291.74/213.00 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 291.74/213.00 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 291.74/213.00 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 291.74/213.00 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 291.74/213.00 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 291.74/213.00 291.74/213.00 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/213.00 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 291.74/213.00 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 291.74/213.00 primMinusNatS x Main.Zero = x; 291.74/213.00 291.74/213.00 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/213.00 primModNatS Main.Zero Main.Zero = Main.error; 291.74/213.00 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 291.74/213.00 primModNatS (Main.Succ x) Main.Zero = Main.error; 291.74/213.00 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 291.74/213.00 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 291.74/213.00 291.74/213.00 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 291.74/213.00 primModNatS0 x y MyFalse = Main.Succ x; 291.74/213.00 291.74/213.00 primPlusInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 291.74/213.00 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 291.74/213.00 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 291.74/213.00 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 291.74/213.00 291.74/213.00 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 291.74/213.00 primPlusNat Main.Zero Main.Zero = Main.Zero; 291.74/213.00 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 291.74/213.00 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 291.74/213.00 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 291.74/213.00 291.74/213.00 primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; 291.74/213.00 primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); 291.74/213.00 291.74/213.00 primQuotInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 291.74/213.00 primQuotInt ww wx = Main.error; 291.74/213.00 291.74/213.00 primRemInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 291.74/213.00 primRemInt vy vz = Main.error; 291.74/213.00 291.74/213.00 properFractionQ xz yu = properFractionQ1 xz yu (properFractionVu30 xz yu); 291.74/213.00 291.74/213.00 properFractionQ1 xz yu (Tup2 q vw) = q; 291.74/213.00 291.74/213.00 properFractionR xz yu = properFractionR0 xz yu (properFractionVu30 xz yu); 291.74/213.00 291.74/213.00 properFractionR0 xz yu (Tup2 vx r) = r; 291.74/213.00 291.74/213.00 properFractionRatio :: Ratio MyInt -> Tup2 MyInt (Ratio MyInt); 291.74/213.00 properFractionRatio (CnPc x y) = Tup2 (properFractionQ x y) (CnPc (properFractionR x y) y); 291.74/213.00 291.74/213.00 properFractionVu30 xz yu = quotRemMyInt xz yu; 291.74/213.00 291.74/213.00 psMyInt :: MyInt -> MyInt -> MyInt; 291.74/213.00 psMyInt = primPlusInt; 291.74/213.00 291.74/213.00 quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; 291.74/213.00 quotRemMyInt = primQrmInt; 291.74/213.00 291.74/213.00 stop :: MyBool -> a; 291.74/213.00 stop MyFalse = stop MyFalse; 291.74/213.00 291.74/213.00 takeWhile :: (a -> MyBool) -> List a -> List a; 291.74/213.00 takeWhile p Nil = takeWhile3 p Nil; 291.74/213.00 takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); 291.74/213.00 291.74/213.00 takeWhile0 p x xs MyTrue = Nil; 291.74/213.00 291.74/213.00 takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); 291.74/213.00 takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; 291.74/213.00 291.74/213.00 takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); 291.74/213.00 291.74/213.00 takeWhile3 p Nil = Nil; 291.74/213.00 takeWhile3 xw xx = takeWhile2 xw xx; 291.74/213.00 291.74/213.00 toEnumRatio :: MyInt -> Ratio MyInt; 291.74/213.00 toEnumRatio = fromIntRatio; 291.74/213.00 291.74/213.00 truncateM xy = truncateM0 xy (truncateVu6 xy); 291.74/213.00 291.74/213.00 truncateM0 xy (Tup2 m vv) = m; 291.74/213.00 291.74/213.00 truncateRatio :: Ratio MyInt -> MyInt; 291.74/213.00 truncateRatio x = truncateM x; 291.74/213.00 291.74/213.00 truncateVu6 xy = properFractionRatio xy; 291.74/213.00 291.74/213.00 } 291.74/213.00 291.74/213.00 ---------------------------------------- 291.74/213.00 291.74/213.00 (5) Narrow (SOUND) 291.74/213.00 Haskell To QDPs 291.74/213.00 291.74/213.00 digraph dp_graph { 291.74/213.00 node [outthreshold=100, inthreshold=100];1[label="enumFromThenToRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 291.74/213.00 3[label="enumFromThenToRatio wy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 291.74/213.00 4[label="enumFromThenToRatio wy3 wy4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 291.74/213.00 5[label="enumFromThenToRatio wy3 wy4 wy5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 291.74/213.00 6 -> 897[label="",style="dashed", color="red", weight=0]; 291.74/213.00 6[label="map toEnumRatio (enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5))",fontsize=16,color="magenta"];6 -> 898[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 898[label="enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];898 -> 1395[label="",style="solid", color="black", weight=3]; 291.74/213.00 897[label="map toEnumRatio wy13",fontsize=16,color="burlywood",shape="triangle"];17123[label="wy13/Cons wy130 wy131",fontsize=10,color="white",style="solid",shape="box"];897 -> 17123[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17123 -> 1396[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17124[label="wy13/Nil",fontsize=10,color="white",style="solid",shape="box"];897 -> 17124[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17124 -> 1397[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1395[label="numericEnumFromThenTo (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];1395 -> 1398[label="",style="solid", color="black", weight=3]; 291.74/213.00 1396[label="map toEnumRatio (Cons wy130 wy131)",fontsize=16,color="black",shape="box"];1396 -> 1399[label="",style="solid", color="black", weight=3]; 291.74/213.00 1397[label="map toEnumRatio Nil",fontsize=16,color="black",shape="box"];1397 -> 1400[label="",style="solid", color="black", weight=3]; 291.74/213.00 1398[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (numericEnumFromThen (fromEnumRatio wy3) (fromEnumRatio wy4))",fontsize=16,color="black",shape="box"];1398 -> 1401[label="",style="solid", color="black", weight=3]; 291.74/213.00 1399[label="Cons (toEnumRatio wy130) (map toEnumRatio wy131)",fontsize=16,color="green",shape="box"];1399 -> 1402[label="",style="dashed", color="green", weight=3]; 291.74/213.00 1399 -> 1403[label="",style="dashed", color="green", weight=3]; 291.74/213.00 1400[label="Nil",fontsize=16,color="green",shape="box"];1401[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1401 -> 1404[label="",style="solid", color="black", weight=3]; 291.74/213.00 1402[label="toEnumRatio wy130",fontsize=16,color="black",shape="box"];1402 -> 1405[label="",style="solid", color="black", weight=3]; 291.74/213.00 1403 -> 897[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1403[label="map toEnumRatio wy131",fontsize=16,color="magenta"];1403 -> 1406[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1404[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1404 -> 1407[label="",style="solid", color="black", weight=3]; 291.74/213.00 1405[label="fromIntRatio wy130",fontsize=16,color="black",shape="box"];1405 -> 1408[label="",style="solid", color="black", weight=3]; 291.74/213.00 1406[label="wy131",fontsize=16,color="green",shape="box"];1407[label="takeWhile2 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1407 -> 1409[label="",style="solid", color="black", weight=3]; 291.74/213.00 1408[label="intToRatio wy130",fontsize=16,color="black",shape="box"];1408 -> 1410[label="",style="solid", color="black", weight=3]; 291.74/213.00 1409[label="takeWhile1 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1409 -> 1411[label="",style="solid", color="black", weight=3]; 291.74/213.00 1410[label="CnPc (fromIntMyInt wy130) (fromIntMyInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];1410 -> 1412[label="",style="dashed", color="green", weight=3]; 291.74/213.00 1410 -> 1413[label="",style="dashed", color="green", weight=3]; 291.74/213.00 1411[label="takeWhile1 (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1411 -> 1414[label="",style="solid", color="black", weight=3]; 291.74/213.00 1412[label="fromIntMyInt wy130",fontsize=16,color="black",shape="triangle"];1412 -> 1415[label="",style="solid", color="black", weight=3]; 291.74/213.00 1413 -> 1412[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1413[label="fromIntMyInt (Pos (Succ Zero))",fontsize=16,color="magenta"];1413 -> 1416[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1414[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1414 -> 1417[label="",style="solid", color="black", weight=3]; 291.74/213.00 1415[label="wy130",fontsize=16,color="green",shape="box"];1416[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1417[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1417 -> 1418[label="",style="solid", color="black", weight=3]; 291.74/213.00 1418[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1418 -> 1419[label="",style="solid", color="black", weight=3]; 291.74/213.00 1419[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1419 -> 1420[label="",style="solid", color="black", weight=3]; 291.74/213.00 1420[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1420 -> 1421[label="",style="solid", color="black", weight=3]; 291.74/213.00 1421[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1421 -> 1422[label="",style="solid", color="black", weight=3]; 291.74/213.00 1422[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1422 -> 1423[label="",style="solid", color="black", weight=3]; 291.74/213.00 1423[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17125[label="wy4/CnPc wy40 wy41",fontsize=10,color="white",style="solid",shape="box"];1423 -> 17125[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17125 -> 1424[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1424[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1424 -> 1425[label="",style="solid", color="black", weight=3]; 291.74/213.00 1425[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1425 -> 1426[label="",style="solid", color="black", weight=3]; 291.74/213.00 1426[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1426 -> 1427[label="",style="solid", color="black", weight=3]; 291.74/213.00 1427[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1427 -> 1428[label="",style="solid", color="black", weight=3]; 291.74/213.00 1428[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1428 -> 1429[label="",style="solid", color="black", weight=3]; 291.74/213.00 1429[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1429 -> 1430[label="",style="solid", color="black", weight=3]; 291.74/213.00 1430[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1430 -> 1431[label="",style="solid", color="black", weight=3]; 291.74/213.00 1431[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17126[label="wy40/Pos wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17126[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17126 -> 1432[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17127[label="wy40/Neg wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17127[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17127 -> 1433[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1432[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17128[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17128[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17128 -> 1434[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17129[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17129[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17129 -> 1435[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1433[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17130[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17130[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17130 -> 1436[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17131[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17131[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17131 -> 1437[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1434[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17132[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17132[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17132 -> 1438[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17133[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17133[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17133 -> 1439[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1435[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17134[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17134[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17134 -> 1440[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17135[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17135[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17135 -> 1441[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1436[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17136[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17136[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17136 -> 1442[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17137[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17137[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17137 -> 1443[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1437[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17138[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17138[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17138 -> 1444[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17139[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17139[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17139 -> 1445[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1438[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1438 -> 1446[label="",style="solid", color="black", weight=3]; 291.74/213.00 1439[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1439 -> 1447[label="",style="solid", color="black", weight=3]; 291.74/213.00 1440[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1440 -> 1448[label="",style="solid", color="black", weight=3]; 291.74/213.00 1441[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1441 -> 1449[label="",style="solid", color="black", weight=3]; 291.74/213.00 1442[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1442 -> 1450[label="",style="solid", color="black", weight=3]; 291.74/213.00 1443[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1443 -> 1451[label="",style="solid", color="black", weight=3]; 291.74/213.00 1444[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1444 -> 1452[label="",style="solid", color="black", weight=3]; 291.74/213.00 1445[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1445 -> 1453[label="",style="solid", color="black", weight=3]; 291.74/213.00 1446[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17140[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17140[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17140 -> 1454[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17141[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17141[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17141 -> 1455[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1447[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="triangle"];1447 -> 1456[label="",style="solid", color="black", weight=3]; 291.74/213.00 1448[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17142[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17142[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17142 -> 1457[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17143[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17143[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17143 -> 1458[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1449 -> 1447[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1449[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1448[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1450[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1459[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1450 -> 1460[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1451 -> 1447[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1451[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1446[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1452[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1461[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1452 -> 1462[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1453 -> 1447[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1453[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1454[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1454 -> 1463[label="",style="solid", color="black", weight=3]; 291.74/213.00 1455[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1455 -> 1464[label="",style="solid", color="black", weight=3]; 291.74/213.00 1456[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3))) (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1456 -> 1465[label="",style="solid", color="black", weight=3]; 291.74/213.00 1457[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1457 -> 1466[label="",style="solid", color="black", weight=3]; 291.74/213.00 1458[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1458 -> 1467[label="",style="solid", color="black", weight=3]; 291.74/213.00 1459[label="wy4100",fontsize=16,color="green",shape="box"];1460[label="wy400",fontsize=16,color="green",shape="box"];1461[label="wy400",fontsize=16,color="green",shape="box"];1462[label="wy4100",fontsize=16,color="green",shape="box"];1463[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17144[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17144[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17144 -> 1468[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17145[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17145[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17145 -> 1469[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1464 -> 13676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1464[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1464 -> 13677[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13678[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13679[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13680[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13681[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13682[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13683[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13684[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13685[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13686[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1464 -> 13687[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1465[label="error []",fontsize=16,color="red",shape="box"];1466[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17146[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17146[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17146 -> 1471[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17147[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17147[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17147 -> 1472[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1467 -> 16126[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1467[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1467 -> 16127[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16128[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16129[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16130[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16131[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16132[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16133[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16134[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16135[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16136[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1467 -> 16137[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1468[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17148[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17148[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17148 -> 1474[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17149[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17149[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17149 -> 1475[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1469[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17150[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17150[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17150 -> 1476[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17151[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17151[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17151 -> 1477[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13677 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13678 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13679 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13679[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13680 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13681 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13682 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13682[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13683 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13683[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13683 -> 14824[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13684 -> 14825[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13684[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13684 -> 14826[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13685 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13685[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13686 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13686[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13686 -> 14832[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13687 -> 14825[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13687[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13687 -> 14827[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13676[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 wy792 wy738)",fontsize=16,color="burlywood",shape="triangle"];17152[label="wy792/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17152[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17152 -> 14833[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17153[label="wy792/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17153[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17153 -> 14834[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1471[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17154[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17154[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17154 -> 1479[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17155[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17155[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17155 -> 1480[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1472[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17156[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17156[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17156 -> 1481[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17157[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17157[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17157 -> 1482[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16127 -> 16170[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16127[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16127 -> 16171[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16128 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16128[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16129 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16129[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16129 -> 16177[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16130 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16130[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16131 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16131[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16132 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16132[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16132 -> 16178[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16133 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16133[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16134 -> 16170[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16134[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16134 -> 16172[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16135 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16135[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16136 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16136[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16137 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16137[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16126[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 wy808 wy756)",fontsize=16,color="burlywood",shape="triangle"];17158[label="wy808/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17158[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17158 -> 16179[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17159[label="wy808/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17159[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17159 -> 16180[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1474[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1474 -> 1484[label="",style="solid", color="black", weight=3]; 291.74/213.00 1475[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1475 -> 1485[label="",style="solid", color="black", weight=3]; 291.74/213.00 1476[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1476 -> 1486[label="",style="solid", color="black", weight=3]; 291.74/213.00 1477[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1477 -> 1487[label="",style="solid", color="black", weight=3]; 291.74/213.00 2355[label="fromEnumRatio wy3",fontsize=16,color="black",shape="triangle"];2355 -> 2368[label="",style="solid", color="black", weight=3]; 291.74/213.00 14824[label="wy5",fontsize=16,color="green",shape="box"];14826 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14826[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14825[label="not (esEsOrdering (primCmpInt (Pos Zero) wy794) LT)",fontsize=16,color="burlywood",shape="triangle"];17160[label="wy794/Pos wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17160[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17160 -> 14835[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17161[label="wy794/Neg wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17161[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17161 -> 14836[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14832[label="wy5",fontsize=16,color="green",shape="box"];14827 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14827[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14833[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14833 -> 14883[label="",style="solid", color="black", weight=3]; 291.74/213.00 14834[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];14834 -> 14884[label="",style="solid", color="black", weight=3]; 291.74/213.00 1479[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1479 -> 1489[label="",style="solid", color="black", weight=3]; 291.74/213.00 1480[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1480 -> 1490[label="",style="solid", color="black", weight=3]; 291.74/213.00 1481[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1481 -> 1491[label="",style="solid", color="black", weight=3]; 291.74/213.00 1482[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1482 -> 1492[label="",style="solid", color="black", weight=3]; 291.74/213.00 16171 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16171[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16170[label="not (esEsOrdering (primCmpInt (Neg Zero) wy810) LT)",fontsize=16,color="burlywood",shape="triangle"];17162[label="wy810/Pos wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17162[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17162 -> 16181[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17163[label="wy810/Neg wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17163[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17163 -> 16182[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16177[label="wy5",fontsize=16,color="green",shape="box"];16178[label="wy5",fontsize=16,color="green",shape="box"];16172 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16172[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16179[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16179 -> 16190[label="",style="solid", color="black", weight=3]; 291.74/213.00 16180[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];16180 -> 16191[label="",style="solid", color="black", weight=3]; 291.74/213.00 1484 -> 11246[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1484[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1484 -> 11247[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11248[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11249[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11250[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11251[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11252[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11253[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11254[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11255[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11256[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11257[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11258[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11259[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11260[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1484 -> 11261[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1485[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1485 -> 1496[label="",style="solid", color="black", weight=3]; 291.74/213.00 1486[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1486 -> 1497[label="",style="solid", color="black", weight=3]; 291.74/213.00 1487[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1487 -> 1498[label="",style="solid", color="black", weight=3]; 291.74/213.00 2368[label="truncateRatio wy3",fontsize=16,color="black",shape="box"];2368 -> 2477[label="",style="solid", color="black", weight=3]; 291.74/213.00 14835[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17164[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17164[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17164 -> 14885[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17165[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17165[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17165 -> 14886[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14836[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17166[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17166[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17166 -> 14887[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17167[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17167[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17167 -> 14888[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14883 -> 14904[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14883[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];14883 -> 14905[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14884[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];14884 -> 14906[label="",style="solid", color="black", weight=3]; 291.74/213.00 1489 -> 11563[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1489[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1489 -> 11564[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11565[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11566[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11567[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11568[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11569[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11570[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11571[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11572[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11573[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11574[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11575[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11576[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11577[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1489 -> 11578[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1490[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1490 -> 1502[label="",style="solid", color="black", weight=3]; 291.74/213.00 1491[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1491 -> 1503[label="",style="solid", color="black", weight=3]; 291.74/213.00 1492[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1492 -> 1504[label="",style="solid", color="black", weight=3]; 291.74/213.00 16181[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17168[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17168[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17168 -> 16192[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17169[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17169[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17169 -> 16193[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16182[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17170[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17170[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17170 -> 16194[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17171[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17171[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17171 -> 16195[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16190 -> 16232[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16190[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16190 -> 16233[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16191[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16191 -> 16234[label="",style="solid", color="black", weight=3]; 291.74/213.00 11247 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11247[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11248[label="wy41000",fontsize=16,color="green",shape="box"];11249[label="wy40000",fontsize=16,color="green",shape="box"];11250 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11250[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11251 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11251[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11252 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11252[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11253 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11253[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11253 -> 11412[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11254 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11254[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11255[label="wy40000",fontsize=16,color="green",shape="box"];11256 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11256[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11257 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11257[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11258 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11258[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11259[label="wy41000",fontsize=16,color="green",shape="box"];11260 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11260[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11261 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11261[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11261 -> 11413[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11246[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="triangle"];17172[label="wy727/Succ wy7270",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17172[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17172 -> 11414[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17173[label="wy727/Zero",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17173[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17173 -> 11415[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1496 -> 12619[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1496[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1496 -> 12620[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12621[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12622[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12623[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12624[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12625[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12626[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12627[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12628[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12629[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12630[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12631[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1496 -> 12632[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1497[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1497 -> 13721[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13722[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13723[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13724[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13725[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13726[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13727[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13728[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13729[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13730[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1497 -> 13731[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12619[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1498[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1498 -> 12633[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12634[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12635[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12636[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12637[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12638[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12639[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12640[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12641[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12642[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12643[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12644[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1498 -> 12645[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 2477[label="truncateM wy3",fontsize=16,color="black",shape="box"];2477 -> 2485[label="",style="solid", color="black", weight=3]; 291.74/213.00 14885[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14885 -> 14907[label="",style="solid", color="black", weight=3]; 291.74/213.00 14886[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];14886 -> 14908[label="",style="solid", color="black", weight=3]; 291.74/213.00 14887[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14887 -> 14909[label="",style="solid", color="black", weight=3]; 291.74/213.00 14888[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];14888 -> 14910[label="",style="solid", color="black", weight=3]; 291.74/213.00 14905 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14905[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];14905 -> 14911[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14905 -> 14912[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14904[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) wy801",fontsize=16,color="burlywood",shape="triangle"];17174[label="wy801/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17174[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17174 -> 14913[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17175[label="wy801/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17175[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17175 -> 14914[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14906[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14906 -> 14928[label="",style="solid", color="black", weight=3]; 291.74/213.00 11564[label="wy41000",fontsize=16,color="green",shape="box"];11565 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11565[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11566 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11566[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11566 -> 11729[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11567 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11567[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11568 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11568[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11569[label="wy41000",fontsize=16,color="green",shape="box"];11570 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11570[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11571[label="wy40000",fontsize=16,color="green",shape="box"];11572 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11572[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11573 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11573[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11574 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11574[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11575 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11575[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11575 -> 11730[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11576[label="wy40000",fontsize=16,color="green",shape="box"];11577 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11577[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11578 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11578[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11563[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="triangle"];17176[label="wy745/Succ wy7450",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17176[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17176 -> 11731[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17177[label="wy745/Zero",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17177[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17177 -> 11732[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 1502 -> 14842[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1502[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1502 -> 14843[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14844[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14845[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14846[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14847[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14848[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14849[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14850[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14851[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14852[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14853[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14854[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1502 -> 14855[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16126[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1503[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1503 -> 16149[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16150[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16151[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16152[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16153[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16154[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16155[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16156[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16157[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16158[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1503 -> 16159[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14842[label="",style="dashed", color="red", weight=0]; 291.74/213.00 1504[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1504 -> 14856[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14857[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14858[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14859[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14860[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14861[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14862[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14863[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14864[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14865[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14866[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14867[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 1504 -> 14868[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16192[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16192 -> 16235[label="",style="solid", color="black", weight=3]; 291.74/213.00 16193[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];16193 -> 16236[label="",style="solid", color="black", weight=3]; 291.74/213.00 16194[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16194 -> 16237[label="",style="solid", color="black", weight=3]; 291.74/213.00 16195[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];16195 -> 16238[label="",style="solid", color="black", weight=3]; 291.74/213.00 16233 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16233[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16233 -> 16239[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16233 -> 16240[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16232[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) wy812",fontsize=16,color="burlywood",shape="triangle"];17178[label="wy812/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17178[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17178 -> 16241[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17179[label="wy812/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17179[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17179 -> 16242[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16234[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16234 -> 16267[label="",style="solid", color="black", weight=3]; 291.74/213.00 11412[label="wy5",fontsize=16,color="green",shape="box"];11413[label="wy5",fontsize=16,color="green",shape="box"];11414[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17180[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17180[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17180 -> 11487[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17181[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17181[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17181 -> 11488[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 11415[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17182[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17182[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17182 -> 11489[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17183[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17183[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17183 -> 11490[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 12620 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12620[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12620 -> 12658[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12620 -> 12659[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12621 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12621[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12622 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12622[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12622 -> 12660[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12623 -> 12661[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12623[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12623 -> 12662[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12623 -> 12663[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12624 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12624[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12624 -> 12674[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12624 -> 12675[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12625 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12625[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12626 -> 12661[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12626[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12626 -> 12664[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12626 -> 12665[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12627 -> 12676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12627[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12627 -> 12677[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12627 -> 12678[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12627 -> 12679[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12628 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12628[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12629 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12629[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12630 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12630[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12630 -> 12686[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12630 -> 12687[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12631 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12631[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12632 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12632[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12632 -> 12688[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12619[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 wy771 wy738)",fontsize=16,color="burlywood",shape="triangle"];17184[label="wy771/MyTrue",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17184[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17184 -> 12689[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17185[label="wy771/MyFalse",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17185[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17185 -> 12690[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13721 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13721[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13722 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13722[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13723 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13723[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13724 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13724[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13725 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13725[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13726 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13726[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13727 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13727[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13727 -> 14837[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13728 -> 14825[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13728[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13728 -> 14828[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13729 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13729[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13730 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13730[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13730 -> 14838[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13731 -> 14825[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13731[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13731 -> 14829[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12633 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12633[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12633 -> 12691[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12633 -> 12692[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12634 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12634[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12635 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12635[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12635 -> 12693[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12636 -> 12661[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12636[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12636 -> 12666[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12636 -> 12667[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12637 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12637[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12637 -> 12694[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12637 -> 12695[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12638 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12638[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12639 -> 12661[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12639[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12639 -> 12668[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12639 -> 12669[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12640 -> 12676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12640[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12640 -> 12680[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12640 -> 12681[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12640 -> 12682[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12641 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12641[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12642 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12642[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12643 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12643[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12643 -> 12696[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12643 -> 12697[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12644 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12644[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12645 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12645[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12645 -> 12698[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 2485[label="truncateM0 wy3 (truncateVu6 wy3)",fontsize=16,color="black",shape="box"];2485 -> 2495[label="",style="solid", color="black", weight=3]; 291.74/213.00 14907[label="not (esEsOrdering (primCmpNat Zero (Succ wy79400)) LT)",fontsize=16,color="black",shape="box"];14907 -> 14929[label="",style="solid", color="black", weight=3]; 291.74/213.00 14908[label="not (esEsOrdering EQ LT)",fontsize=16,color="black",shape="triangle"];14908 -> 14930[label="",style="solid", color="black", weight=3]; 291.74/213.00 14909 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14909[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14910 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14910[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];14911[label="wy738",fontsize=16,color="green",shape="box"];14912[label="wy735",fontsize=16,color="green",shape="box"];5275[label="flip ltEsMyInt wy439 wy20",fontsize=16,color="black",shape="triangle"];5275 -> 5323[label="",style="solid", color="black", weight=3]; 291.74/213.00 14913[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];14913 -> 14931[label="",style="solid", color="black", weight=3]; 291.74/213.00 14914[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyFalse",fontsize=16,color="black",shape="box"];14914 -> 14932[label="",style="solid", color="black", weight=3]; 291.74/213.00 14928[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="box"];14928 -> 16074[label="",style="solid", color="black", weight=3]; 291.74/213.00 11729[label="wy5",fontsize=16,color="green",shape="box"];11730[label="wy5",fontsize=16,color="green",shape="box"];11731[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17186[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17186[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17186 -> 11808[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17187[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17187[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17187 -> 11809[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 11732[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17188[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17188[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17188 -> 11810[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17189[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17189[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17189 -> 11811[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14843 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14843[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14843 -> 14889[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14844 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14844[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14845 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14845[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14845 -> 14890[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14845 -> 14891[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14846 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14846[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14846 -> 14892[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14846 -> 14893[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14847 -> 14894[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14847[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14847 -> 14895[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14847 -> 14896[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14847 -> 14897[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14848 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14848[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14849 -> 14915[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14849[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14849 -> 14916[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14849 -> 14917[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14850 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14850[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14851 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14851[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14852 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14852[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14852 -> 14933[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14852 -> 14934[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14853 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14853[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14853 -> 14935[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14854 -> 14915[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14854[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14854 -> 14918[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14854 -> 14919[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14855 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14855[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14842[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 wy795 wy756)",fontsize=16,color="burlywood",shape="triangle"];17190[label="wy795/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17190[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17190 -> 14936[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17191[label="wy795/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17191[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17191 -> 14937[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16149 -> 16170[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16149[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16149 -> 16173[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16150 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16150[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16151 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16151[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16151 -> 16183[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16152 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16152[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16153 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16153[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16154 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16154[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16154 -> 16184[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16155 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16155[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16156 -> 16170[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16156[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16156 -> 16174[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16157 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16157[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16158 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16158[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16159 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16159[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14856 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14856[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14856 -> 14938[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14857 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14857[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14858 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14858[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14858 -> 14939[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14858 -> 14940[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14859 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14859[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14859 -> 14941[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14859 -> 14942[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14860 -> 14894[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14860[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14860 -> 14898[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14860 -> 14899[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14860 -> 14900[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14861 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14861[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14862 -> 14915[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14862[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14862 -> 14920[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14862 -> 14921[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14863 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14863[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14864 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14864[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14865 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14865[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14865 -> 14943[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14865 -> 14944[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14866 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14866[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14866 -> 14945[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14867 -> 14915[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14867[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14867 -> 14922[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14867 -> 14923[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14868 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14868[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16235 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16235[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16236 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16236[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16237 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16237[label="not (esEsOrdering (primCmpNat (Succ wy81000) Zero) LT)",fontsize=16,color="magenta"];16237 -> 16268[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16237 -> 16269[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16238 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16238[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16239[label="wy756",fontsize=16,color="green",shape="box"];16240[label="wy753",fontsize=16,color="green",shape="box"];16241[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16241 -> 16270[label="",style="solid", color="black", weight=3]; 291.74/213.00 16242[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyFalse",fontsize=16,color="black",shape="box"];16242 -> 16271[label="",style="solid", color="black", weight=3]; 291.74/213.00 16267[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="box"];16267 -> 16315[label="",style="solid", color="black", weight=3]; 291.74/213.00 11487[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11487 -> 11559[label="",style="solid", color="black", weight=3]; 291.74/213.00 11488[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11488 -> 11560[label="",style="solid", color="black", weight=3]; 291.74/213.00 11489[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11489 -> 11561[label="",style="solid", color="black", weight=3]; 291.74/213.00 11490[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11490 -> 11562[label="",style="solid", color="black", weight=3]; 291.74/213.00 12658 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12658[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12658 -> 12699[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12659[label="Zero",fontsize=16,color="green",shape="box"];5128[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="burlywood",shape="triangle"];17192[label="wy160/Succ wy1600",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17192[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17192 -> 6025[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17193[label="wy160/Zero",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17193[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17193 -> 6026[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 12660[label="wy5",fontsize=16,color="green",shape="box"];12662 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12662[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12663 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12663[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12663 -> 12700[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12663 -> 12701[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12661[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) wy773) LT)",fontsize=16,color="burlywood",shape="triangle"];17194[label="wy773/Pos wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17194[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17194 -> 12702[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17195[label="wy773/Neg wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17195[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17195 -> 12703[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 12674 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12674[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12674 -> 12704[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12675[label="Zero",fontsize=16,color="green",shape="box"];12664 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12664[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12665 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12665[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12665 -> 12705[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12665 -> 12706[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12677 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12678 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12679 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12679[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12679 -> 12707[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12679 -> 12708[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12676[label="psMyInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="triangle"];12676 -> 12709[label="",style="solid", color="black", weight=3]; 291.74/213.00 12686 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12686[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12686 -> 13389[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12687[label="Zero",fontsize=16,color="green",shape="box"];12688[label="wy5",fontsize=16,color="green",shape="box"];12689[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];12689 -> 13390[label="",style="solid", color="black", weight=3]; 291.74/213.00 12690[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];12690 -> 13391[label="",style="solid", color="black", weight=3]; 291.74/213.00 14837[label="wy5",fontsize=16,color="green",shape="box"];14828 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14828[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14838[label="wy5",fontsize=16,color="green",shape="box"];14829 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14829[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12691 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12691[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12691 -> 13392[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12692[label="Zero",fontsize=16,color="green",shape="box"];12693[label="wy5",fontsize=16,color="green",shape="box"];12666 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12666[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12667 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12667[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12667 -> 12710[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12667 -> 12711[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12694 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12694[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12694 -> 13393[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12695[label="Zero",fontsize=16,color="green",shape="box"];12668 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12668[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12669 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12669[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12669 -> 12712[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12669 -> 12713[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12680 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12681 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12682 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12682[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12682 -> 12714[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12682 -> 12715[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12696 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12696[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12696 -> 13394[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12697[label="Zero",fontsize=16,color="green",shape="box"];12698[label="wy5",fontsize=16,color="green",shape="box"];2495[label="truncateM0 wy3 (properFractionRatio wy3)",fontsize=16,color="burlywood",shape="box"];17196[label="wy3/CnPc wy30 wy31",fontsize=10,color="white",style="solid",shape="box"];2495 -> 17196[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17196 -> 2529[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14929[label="not (esEsOrdering LT LT)",fontsize=16,color="black",shape="triangle"];14929 -> 16077[label="",style="solid", color="black", weight=3]; 291.74/213.00 14930 -> 7428[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14930[label="not MyFalse",fontsize=16,color="magenta"];13404[label="not (esEsOrdering GT LT)",fontsize=16,color="black",shape="triangle"];13404 -> 13652[label="",style="solid", color="black", weight=3]; 291.74/213.00 5323[label="ltEsMyInt wy20 wy439",fontsize=16,color="black",shape="box"];5323 -> 5496[label="",style="solid", color="black", weight=3]; 291.74/213.00 14931[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)))",fontsize=16,color="green",shape="box"];14931 -> 16078[label="",style="dashed", color="green", weight=3]; 291.74/213.00 14932[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) otherwise",fontsize=16,color="black",shape="box"];14932 -> 16079[label="",style="solid", color="black", weight=3]; 291.74/213.00 16074[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];16074 -> 16185[label="",style="solid", color="black", weight=3]; 291.74/213.00 11808[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11808 -> 12494[label="",style="solid", color="black", weight=3]; 291.74/213.00 11809[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11809 -> 12495[label="",style="solid", color="black", weight=3]; 291.74/213.00 11810[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11810 -> 12496[label="",style="solid", color="black", weight=3]; 291.74/213.00 11811[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11811 -> 12497[label="",style="solid", color="black", weight=3]; 291.74/213.00 14889[label="wy5",fontsize=16,color="green",shape="box"];14890 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14890[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14890 -> 14946[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14891[label="Zero",fontsize=16,color="green",shape="box"];14892 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14892[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14892 -> 14947[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14893[label="Zero",fontsize=16,color="green",shape="box"];14895 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14895[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14895 -> 14948[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14895 -> 14949[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14896 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14896[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14897 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14897[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14894[label="psMyInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="triangle"];14894 -> 14950[label="",style="solid", color="black", weight=3]; 291.74/213.00 14916 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14916[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14917 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14917[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14917 -> 14951[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14917 -> 14952[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14915[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) wy802) LT)",fontsize=16,color="burlywood",shape="triangle"];17197[label="wy802/Pos wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17197[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17197 -> 14953[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17198[label="wy802/Neg wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17198[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17198 -> 14954[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14933 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14933[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14933 -> 16080[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14933 -> 16081[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14934[label="Zero",fontsize=16,color="green",shape="box"];14935[label="wy5",fontsize=16,color="green",shape="box"];14918 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14918[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14919 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14919[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14919 -> 14955[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14919 -> 14956[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14936[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];14936 -> 16082[label="",style="solid", color="black", weight=3]; 291.74/213.00 14937[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];14937 -> 16083[label="",style="solid", color="black", weight=3]; 291.74/213.00 16173 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16173[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16183[label="wy5",fontsize=16,color="green",shape="box"];16184[label="wy5",fontsize=16,color="green",shape="box"];16174 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16174[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14938[label="wy5",fontsize=16,color="green",shape="box"];14939 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14939[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14939 -> 16084[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14939 -> 16085[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14940[label="Zero",fontsize=16,color="green",shape="box"];14941 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14941[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14941 -> 16086[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14941 -> 16087[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14942[label="Zero",fontsize=16,color="green",shape="box"];14898 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14898[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14898 -> 14957[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14898 -> 14958[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14899 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14899[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14900 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14900[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14920 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14920[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14921 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14921[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14921 -> 14959[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14921 -> 14960[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14943 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14943[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14943 -> 16088[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14943 -> 16089[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14944[label="Zero",fontsize=16,color="green",shape="box"];14945[label="wy5",fontsize=16,color="green",shape="box"];14922 -> 2355[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14922[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14923 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14923[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14923 -> 14961[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14923 -> 14962[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16268[label="Zero",fontsize=16,color="green",shape="box"];16269[label="Succ wy81000",fontsize=16,color="green",shape="box"];14963[label="not (esEsOrdering (primCmpNat wy774 wy77300) LT)",fontsize=16,color="burlywood",shape="triangle"];17199[label="wy774/Succ wy7740",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17199[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17199 -> 16105[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17200[label="wy774/Zero",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17200[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17200 -> 16106[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16270[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)))",fontsize=16,color="green",shape="box"];16270 -> 16316[label="",style="dashed", color="green", weight=3]; 291.74/213.00 16271[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) otherwise",fontsize=16,color="black",shape="box"];16271 -> 16317[label="",style="solid", color="black", weight=3]; 291.74/213.00 16315[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16315 -> 16348[label="",style="solid", color="black", weight=3]; 291.74/213.00 11559 -> 11246[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11559[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11559 -> 11733[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11559 -> 11734[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11560[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="black",shape="triangle"];11560 -> 11735[label="",style="solid", color="black", weight=3]; 291.74/213.00 11561[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11561 -> 11736[label="",style="solid", color="black", weight=3]; 291.74/213.00 11562 -> 11560[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11562[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="magenta"];12699[label="Succ wy40000",fontsize=16,color="green",shape="box"];10455[label="primMinusNatS wy5570000 Zero",fontsize=16,color="burlywood",shape="triangle"];17201[label="wy5570000/Succ wy55700000",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17201[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17201 -> 10485[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17202[label="wy5570000/Zero",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17202[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17202 -> 10486[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 6025[label="primDivNatS (Succ wy1600) (Succ wy1700)",fontsize=16,color="black",shape="box"];6025 -> 7057[label="",style="solid", color="black", weight=3]; 291.74/213.00 6026[label="primDivNatS Zero (Succ wy1700)",fontsize=16,color="black",shape="box"];6026 -> 7058[label="",style="solid", color="black", weight=3]; 291.74/213.00 12700 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12700[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12700 -> 13402[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12701[label="Zero",fontsize=16,color="green",shape="box"];12702[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Pos wy7730)) LT)",fontsize=16,color="black",shape="box"];12702 -> 13403[label="",style="solid", color="black", weight=3]; 291.74/213.00 12703[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Neg wy7730)) LT)",fontsize=16,color="black",shape="box"];12703 -> 13404[label="",style="solid", color="black", weight=3]; 291.74/213.00 12704[label="Succ wy40000",fontsize=16,color="green",shape="box"];12705 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12705[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12705 -> 13405[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12706[label="Zero",fontsize=16,color="green",shape="box"];12707 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12707[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12707 -> 13406[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12708[label="Zero",fontsize=16,color="green",shape="box"];12709[label="primPlusInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="box"];12709 -> 13407[label="",style="solid", color="black", weight=3]; 291.74/213.00 13389[label="Succ wy40000",fontsize=16,color="green",shape="box"];13390 -> 13641[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13390[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];13390 -> 13642[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13391[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];13391 -> 13643[label="",style="solid", color="black", weight=3]; 291.74/213.00 13392[label="Zero",fontsize=16,color="green",shape="box"];12710 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12710[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12710 -> 13408[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12711[label="Zero",fontsize=16,color="green",shape="box"];13393[label="Zero",fontsize=16,color="green",shape="box"];12712 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12712[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12712 -> 13409[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12713[label="Zero",fontsize=16,color="green",shape="box"];12714 -> 10455[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12714[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12714 -> 13410[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12715[label="Zero",fontsize=16,color="green",shape="box"];13394[label="Zero",fontsize=16,color="green",shape="box"];2529[label="truncateM0 (CnPc wy30 wy31) (properFractionRatio (CnPc wy30 wy31))",fontsize=16,color="black",shape="box"];2529 -> 2539[label="",style="solid", color="black", weight=3]; 291.74/213.00 16077 -> 7423[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16077[label="not MyTrue",fontsize=16,color="magenta"];7428[label="not MyFalse",fontsize=16,color="black",shape="triangle"];7428 -> 10566[label="",style="solid", color="black", weight=3]; 291.74/213.00 13652 -> 7428[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13652[label="not MyFalse",fontsize=16,color="magenta"];5496[label="fsEsOrdering (compareMyInt wy20 wy439) GT",fontsize=16,color="black",shape="box"];5496 -> 5551[label="",style="solid", color="black", weight=3]; 291.74/213.00 16078[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="black",shape="box"];16078 -> 16186[label="",style="solid", color="black", weight=3]; 291.74/213.00 16079[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];16079 -> 16187[label="",style="solid", color="black", weight=3]; 291.74/213.00 16185[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16185 -> 16196[label="",style="solid", color="black", weight=3]; 291.74/213.00 12494 -> 11563[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12494[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12494 -> 12593[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12494 -> 12594[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12495[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="black",shape="triangle"];12495 -> 12595[label="",style="solid", color="black", weight=3]; 291.74/213.00 12496[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];12496 -> 12596[label="",style="solid", color="black", weight=3]; 291.74/213.00 12497 -> 12495[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12497[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="magenta"];14946[label="Succ wy40000",fontsize=16,color="green",shape="box"];14947[label="Succ wy40000",fontsize=16,color="green",shape="box"];14948 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14948[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14948 -> 16090[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14948 -> 16091[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14949[label="Zero",fontsize=16,color="green",shape="box"];14950[label="primPlusInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="box"];14950 -> 16092[label="",style="solid", color="black", weight=3]; 291.74/213.00 14951 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14951[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14951 -> 16093[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14951 -> 16094[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14952[label="Zero",fontsize=16,color="green",shape="box"];14953[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Pos wy8020)) LT)",fontsize=16,color="black",shape="box"];14953 -> 16095[label="",style="solid", color="black", weight=3]; 291.74/213.00 14954[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Neg wy8020)) LT)",fontsize=16,color="black",shape="box"];14954 -> 16096[label="",style="solid", color="black", weight=3]; 291.74/213.00 16080[label="Zero",fontsize=16,color="green",shape="box"];16081[label="Succ wy40000",fontsize=16,color="green",shape="box"];13663[label="primMinusNatS wy725 wy726",fontsize=16,color="burlywood",shape="triangle"];17203[label="wy725/Succ wy7250",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17203[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17203 -> 14986[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17204[label="wy725/Zero",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17204[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17204 -> 14987[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14955 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14955[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14955 -> 16097[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14955 -> 16098[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14956[label="Zero",fontsize=16,color="green",shape="box"];16082 -> 16188[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16082[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16082 -> 16189[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16083[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16083 -> 16197[label="",style="solid", color="black", weight=3]; 291.74/213.00 16084[label="Zero",fontsize=16,color="green",shape="box"];16085[label="Zero",fontsize=16,color="green",shape="box"];16086[label="Zero",fontsize=16,color="green",shape="box"];16087[label="Zero",fontsize=16,color="green",shape="box"];14957 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14957[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14957 -> 16099[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14957 -> 16100[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14958[label="Zero",fontsize=16,color="green",shape="box"];14959 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14959[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14959 -> 16101[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14959 -> 16102[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14960[label="Zero",fontsize=16,color="green",shape="box"];16088[label="Zero",fontsize=16,color="green",shape="box"];16089[label="Zero",fontsize=16,color="green",shape="box"];14961 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14961[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14961 -> 16103[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14961 -> 16104[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14962[label="Zero",fontsize=16,color="green",shape="box"];16105[label="not (esEsOrdering (primCmpNat (Succ wy7740) wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17205[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17205[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17205 -> 16211[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17206[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17206[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17206 -> 16212[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16106[label="not (esEsOrdering (primCmpNat Zero wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17207[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17207[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17207 -> 16213[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17208[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17208[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17208 -> 16214[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16316[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="black",shape="box"];16316 -> 16349[label="",style="solid", color="black", weight=3]; 291.74/213.00 16317[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16317 -> 16350[label="",style="solid", color="black", weight=3]; 291.74/213.00 16348[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16348 -> 16366[label="",style="solid", color="black", weight=3]; 291.74/213.00 11733[label="wy7270",fontsize=16,color="green",shape="box"];11734[label="wy7280",fontsize=16,color="green",shape="box"];11735 -> 12619[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11735[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy729 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy732)) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy736 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11735 -> 12652[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11735 -> 12653[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11735 -> 12654[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11735 -> 12655[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11735 -> 12656[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11735 -> 12657[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11736 -> 13676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 11736[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 (not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 (not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)) wy738)",fontsize=16,color="magenta"];11736 -> 13765[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 11736 -> 13766[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 10485[label="primMinusNatS (Succ wy55700000) Zero",fontsize=16,color="black",shape="box"];10485 -> 10520[label="",style="solid", color="black", weight=3]; 291.74/213.00 10486[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];10486 -> 10521[label="",style="solid", color="black", weight=3]; 291.74/213.00 7057[label="primDivNatS0 wy1600 wy1700 (primGEqNatS wy1600 wy1700)",fontsize=16,color="burlywood",shape="box"];17209[label="wy1600/Succ wy16000",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17209[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17209 -> 7151[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17210[label="wy1600/Zero",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17210[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17210 -> 7152[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7058[label="Zero",fontsize=16,color="green",shape="box"];13402[label="Succ wy40000",fontsize=16,color="green",shape="box"];13403[label="not (esEsOrdering (primCmpNat (Succ wy774) wy7730) LT)",fontsize=16,color="burlywood",shape="box"];17211[label="wy7730/Succ wy77300",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17211[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17211 -> 13650[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17212[label="wy7730/Zero",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17212[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17212 -> 13651[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13405[label="Succ wy40000",fontsize=16,color="green",shape="box"];13406[label="Succ wy40000",fontsize=16,color="green",shape="box"];13407[label="primPlusInt (primMinusInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="burlywood",shape="box"];17213[label="wy777/Pos wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17213[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17213 -> 13653[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17214[label="wy777/Neg wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17214[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17214 -> 13654[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13642 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13642[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];13642 -> 13655[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13642 -> 13656[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13641[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy791",fontsize=16,color="burlywood",shape="triangle"];17215[label="wy791/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17215[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17215 -> 13657[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17216[label="wy791/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17216[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17216 -> 13658[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13643[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];13643 -> 14839[label="",style="solid", color="black", weight=3]; 291.74/213.00 13408[label="Zero",fontsize=16,color="green",shape="box"];13409[label="Zero",fontsize=16,color="green",shape="box"];13410[label="Zero",fontsize=16,color="green",shape="box"];2539[label="truncateM0 (CnPc wy30 wy31) (Tup2 (properFractionQ wy30 wy31) (CnPc (properFractionR wy30 wy31) wy31))",fontsize=16,color="black",shape="box"];2539 -> 2551[label="",style="solid", color="black", weight=3]; 291.74/213.00 7423[label="not MyTrue",fontsize=16,color="black",shape="triangle"];7423 -> 10562[label="",style="solid", color="black", weight=3]; 291.74/213.00 10566[label="MyTrue",fontsize=16,color="green",shape="box"];5551[label="not (esEsOrdering (compareMyInt wy20 wy439) GT)",fontsize=16,color="black",shape="box"];5551 -> 5799[label="",style="solid", color="black", weight=3]; 291.74/213.00 16186[label="takeWhile (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16186 -> 16198[label="",style="solid", color="black", weight=3]; 291.74/213.00 16187[label="Nil",fontsize=16,color="green",shape="box"];16196[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16196 -> 16243[label="",style="solid", color="black", weight=3]; 291.74/213.00 12593[label="wy7460",fontsize=16,color="green",shape="box"];12594[label="wy7450",fontsize=16,color="green",shape="box"];12595 -> 14842[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12595[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy747 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy750)) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy754 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12595 -> 14875[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12595 -> 14876[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12595 -> 14877[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12595 -> 14878[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12595 -> 14879[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12595 -> 14880[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12596 -> 16126[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12596[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 (not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 (not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)) wy756)",fontsize=16,color="magenta"];12596 -> 16160[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12596 -> 16161[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16090[label="Zero",fontsize=16,color="green",shape="box"];16091[label="Succ wy40000",fontsize=16,color="green",shape="box"];16092[label="primPlusInt (primMinusInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="burlywood",shape="box"];17217[label="wy798/Pos wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17217[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17217 -> 16199[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17218[label="wy798/Neg wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17218[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17218 -> 16200[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16093[label="Zero",fontsize=16,color="green",shape="box"];16094[label="Succ wy40000",fontsize=16,color="green",shape="box"];16095 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16095[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16096 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16096[label="not (esEsOrdering (primCmpNat wy8020 (Succ wy803)) LT)",fontsize=16,color="magenta"];16096 -> 16201[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16096 -> 16202[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14986[label="primMinusNatS (Succ wy7250) wy726",fontsize=16,color="burlywood",shape="box"];17219[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17219[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17219 -> 16203[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17220[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17220[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17220 -> 16204[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14987[label="primMinusNatS Zero wy726",fontsize=16,color="burlywood",shape="box"];17221[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17221[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17221 -> 16205[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17222[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17222[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17222 -> 16206[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16097[label="Zero",fontsize=16,color="green",shape="box"];16098[label="Succ wy40000",fontsize=16,color="green",shape="box"];16189 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16189[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16189 -> 16207[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16189 -> 16208[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16188[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy811",fontsize=16,color="burlywood",shape="triangle"];17223[label="wy811/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17223[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17223 -> 16209[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17224[label="wy811/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17224[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17224 -> 16210[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16197[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16197 -> 16244[label="",style="solid", color="black", weight=3]; 291.74/213.00 16099[label="Zero",fontsize=16,color="green",shape="box"];16100[label="Zero",fontsize=16,color="green",shape="box"];16101[label="Zero",fontsize=16,color="green",shape="box"];16102[label="Zero",fontsize=16,color="green",shape="box"];16103[label="Zero",fontsize=16,color="green",shape="box"];16104[label="Zero",fontsize=16,color="green",shape="box"];16211[label="not (esEsOrdering (primCmpNat (Succ wy7740) (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16211 -> 16254[label="",style="solid", color="black", weight=3]; 291.74/213.00 16212[label="not (esEsOrdering (primCmpNat (Succ wy7740) Zero) LT)",fontsize=16,color="black",shape="box"];16212 -> 16255[label="",style="solid", color="black", weight=3]; 291.74/213.00 16213[label="not (esEsOrdering (primCmpNat Zero (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16213 -> 16256[label="",style="solid", color="black", weight=3]; 291.74/213.00 16214[label="not (esEsOrdering (primCmpNat Zero Zero) LT)",fontsize=16,color="black",shape="box"];16214 -> 16257[label="",style="solid", color="black", weight=3]; 291.74/213.00 16349[label="takeWhile (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16349 -> 16367[label="",style="solid", color="black", weight=3]; 291.74/213.00 16350[label="Nil",fontsize=16,color="green",shape="box"];16366[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16366 -> 16446[label="",style="solid", color="black", weight=3]; 291.74/213.00 12652 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12652[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12652 -> 13413[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12652 -> 13414[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12653 -> 12661[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12653[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT)",fontsize=16,color="magenta"];12653 -> 12670[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12653 -> 12671[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12654 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12654[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12654 -> 13415[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12654 -> 13416[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12655 -> 12661[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12655[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)",fontsize=16,color="magenta"];12655 -> 12672[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12655 -> 12673[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12656 -> 12676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12656[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734",fontsize=16,color="magenta"];12656 -> 12683[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12656 -> 12684[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12656 -> 12685[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12657 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12657[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12657 -> 13417[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12657 -> 13418[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13765 -> 14825[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13765[label="not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT)",fontsize=16,color="magenta"];13765 -> 14830[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13766 -> 14825[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13766[label="not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)",fontsize=16,color="magenta"];13766 -> 14831[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 10520[label="Succ wy55700000",fontsize=16,color="green",shape="box"];10521[label="Zero",fontsize=16,color="green",shape="box"];7151[label="primDivNatS0 (Succ wy16000) wy1700 (primGEqNatS (Succ wy16000) wy1700)",fontsize=16,color="burlywood",shape="box"];17225[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17225[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17225 -> 7184[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17226[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17226[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17226 -> 7185[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7152[label="primDivNatS0 Zero wy1700 (primGEqNatS Zero wy1700)",fontsize=16,color="burlywood",shape="box"];17227[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17227[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17227 -> 7186[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17228[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17228[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17228 -> 7187[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13650[label="not (esEsOrdering (primCmpNat (Succ wy774) (Succ wy77300)) LT)",fontsize=16,color="black",shape="box"];13650 -> 14963[label="",style="solid", color="black", weight=3]; 291.74/213.00 13651[label="not (esEsOrdering (primCmpNat (Succ wy774) Zero) LT)",fontsize=16,color="black",shape="box"];13651 -> 14964[label="",style="solid", color="black", weight=3]; 291.74/213.00 13653[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Pos wy7770)) wy776",fontsize=16,color="black",shape="box"];13653 -> 14965[label="",style="solid", color="black", weight=3]; 291.74/213.00 13654[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Neg wy7770)) wy776",fontsize=16,color="black",shape="box"];13654 -> 14966[label="",style="solid", color="black", weight=3]; 291.74/213.00 13655[label="wy738",fontsize=16,color="green",shape="box"];13656[label="wy735",fontsize=16,color="green",shape="box"];13657[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];13657 -> 14967[label="",style="solid", color="black", weight=3]; 291.74/213.00 13658[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];13658 -> 14968[label="",style="solid", color="black", weight=3]; 291.74/213.00 14839[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="triangle"];14839 -> 14969[label="",style="solid", color="black", weight=3]; 291.74/213.00 2551[label="properFractionQ wy30 wy31",fontsize=16,color="black",shape="box"];2551 -> 2559[label="",style="solid", color="black", weight=3]; 291.74/213.00 10562[label="MyFalse",fontsize=16,color="green",shape="box"];5799[label="not (esEsOrdering (primCmpInt wy20 wy439) GT)",fontsize=16,color="burlywood",shape="box"];17229[label="wy20/Pos wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17229[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17229 -> 6034[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17230[label="wy20/Neg wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17230[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17230 -> 6035[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16198[label="takeWhile2 (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16198 -> 16245[label="",style="solid", color="black", weight=3]; 291.74/213.00 16243[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17231[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17231[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17231 -> 16272[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17232[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17232[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17232 -> 16273[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14875 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14875[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14875 -> 14970[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14875 -> 14971[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14876 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14876[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14876 -> 14972[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14876 -> 14973[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14877 -> 14894[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14877[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752",fontsize=16,color="magenta"];14877 -> 14901[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14877 -> 14902[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14877 -> 14903[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14878 -> 14915[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14878[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)",fontsize=16,color="magenta"];14878 -> 14924[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14878 -> 14925[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14879 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14879[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14879 -> 14974[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14879 -> 14975[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14880 -> 14915[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14880[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT)",fontsize=16,color="magenta"];14880 -> 14926[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14880 -> 14927[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16160 -> 16170[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16160[label="not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT)",fontsize=16,color="magenta"];16160 -> 16175[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16161 -> 16170[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16161[label="not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)",fontsize=16,color="magenta"];16161 -> 16176[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16199[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Pos wy7980)) wy797",fontsize=16,color="black",shape="box"];16199 -> 16246[label="",style="solid", color="black", weight=3]; 291.74/213.00 16200[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Neg wy7980)) wy797",fontsize=16,color="black",shape="box"];16200 -> 16247[label="",style="solid", color="black", weight=3]; 291.74/213.00 16201[label="Succ wy803",fontsize=16,color="green",shape="box"];16202[label="wy8020",fontsize=16,color="green",shape="box"];16203[label="primMinusNatS (Succ wy7250) (Succ wy7260)",fontsize=16,color="black",shape="box"];16203 -> 16248[label="",style="solid", color="black", weight=3]; 291.74/213.00 16204[label="primMinusNatS (Succ wy7250) Zero",fontsize=16,color="black",shape="box"];16204 -> 16249[label="",style="solid", color="black", weight=3]; 291.74/213.00 16205[label="primMinusNatS Zero (Succ wy7260)",fontsize=16,color="black",shape="box"];16205 -> 16250[label="",style="solid", color="black", weight=3]; 291.74/213.00 16206[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];16206 -> 16251[label="",style="solid", color="black", weight=3]; 291.74/213.00 16207[label="wy756",fontsize=16,color="green",shape="box"];16208[label="wy753",fontsize=16,color="green",shape="box"];16209[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16209 -> 16252[label="",style="solid", color="black", weight=3]; 291.74/213.00 16210[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16210 -> 16253[label="",style="solid", color="black", weight=3]; 291.74/213.00 16244[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="triangle"];16244 -> 16274[label="",style="solid", color="black", weight=3]; 291.74/213.00 16254 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16254[label="not (esEsOrdering (primCmpNat wy7740 wy773000) LT)",fontsize=16,color="magenta"];16254 -> 16289[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16254 -> 16290[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16255 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16255[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16256 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16256[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16257 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16257[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16367[label="takeWhile2 (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16367 -> 16447[label="",style="solid", color="black", weight=3]; 291.74/213.00 16446[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17233[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17233[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17233 -> 16453[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17234[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17234[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17234 -> 16454[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13413[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="black",shape="triangle"];13413 -> 13663[label="",style="solid", color="black", weight=3]; 291.74/213.00 13414[label="Succ wy726",fontsize=16,color="green",shape="box"];12670[label="wy730",fontsize=16,color="green",shape="box"];12671 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12671[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12671 -> 13429[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12671 -> 13430[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13415 -> 13413[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13415[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13416[label="Succ wy726",fontsize=16,color="green",shape="box"];12672[label="wy737",fontsize=16,color="green",shape="box"];12673 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12673[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12673 -> 13431[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12673 -> 13432[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12683[label="wy734",fontsize=16,color="green",shape="box"];12684[label="wy733",fontsize=16,color="green",shape="box"];12685 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 12685[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12685 -> 13433[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 12685 -> 13434[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 13417 -> 13413[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13417[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13418[label="Succ wy726",fontsize=16,color="green",shape="box"];14830[label="wy730",fontsize=16,color="green",shape="box"];14831[label="wy737",fontsize=16,color="green",shape="box"];7184[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS (Succ wy16000) (Succ wy17000))",fontsize=16,color="black",shape="box"];7184 -> 7244[label="",style="solid", color="black", weight=3]; 291.74/213.00 7185[label="primDivNatS0 (Succ wy16000) Zero (primGEqNatS (Succ wy16000) Zero)",fontsize=16,color="black",shape="box"];7185 -> 7245[label="",style="solid", color="black", weight=3]; 291.74/213.00 7186[label="primDivNatS0 Zero (Succ wy17000) (primGEqNatS Zero (Succ wy17000))",fontsize=16,color="black",shape="box"];7186 -> 7246[label="",style="solid", color="black", weight=3]; 291.74/213.00 7187[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];7187 -> 7247[label="",style="solid", color="black", weight=3]; 291.74/213.00 14964 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14964[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14965[label="primPlusInt (primMinusNat (Succ wy778) wy7770) wy776",fontsize=16,color="burlywood",shape="box"];17235[label="wy7770/Succ wy77700",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17235[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17235 -> 16107[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17236[label="wy7770/Zero",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17236[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17236 -> 16108[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14966 -> 16562[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14966[label="primPlusInt (Pos (primPlusNat (Succ wy778) wy7770)) wy776",fontsize=16,color="magenta"];14966 -> 16563[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14966 -> 16564[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14967[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];14967 -> 16111[label="",style="dashed", color="green", weight=3]; 291.74/213.00 14968[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];14968 -> 16112[label="",style="solid", color="black", weight=3]; 291.74/213.00 14969[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];14969 -> 16113[label="",style="solid", color="black", weight=3]; 291.74/213.00 2559[label="properFractionQ1 wy30 wy31 (properFractionVu30 wy30 wy31)",fontsize=16,color="black",shape="box"];2559 -> 2567[label="",style="solid", color="black", weight=3]; 291.74/213.00 6034[label="not (esEsOrdering (primCmpInt (Pos wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17237[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17237[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17237 -> 7263[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17238[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17238[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17238 -> 7264[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 6035[label="not (esEsOrdering (primCmpInt (Neg wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17239[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17239[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17239 -> 7265[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17240[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17240[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17240 -> 7266[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16245 -> 14904[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16245[label="takeWhile1 (flip ltEsMyInt wy735) (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))) (flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="magenta"];16245 -> 16275[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16245 -> 16276[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16245 -> 16277[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16245 -> 16278[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16272[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17241[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17241[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17241 -> 16318[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17242[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17242[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17242 -> 16319[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16273[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17243[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17243[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17243 -> 16320[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17244[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17244[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17244 -> 16321[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 14970 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14970[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14970 -> 16114[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14970 -> 16115[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14971[label="Succ wy744",fontsize=16,color="green",shape="box"];14972 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14972[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14972 -> 16116[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14972 -> 16117[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14973[label="Succ wy744",fontsize=16,color="green",shape="box"];14901 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14901[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14901 -> 14976[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14901 -> 14977[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14902[label="wy752",fontsize=16,color="green",shape="box"];14903[label="wy751",fontsize=16,color="green",shape="box"];14924[label="wy755",fontsize=16,color="green",shape="box"];14925 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14925[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14925 -> 14978[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14925 -> 14979[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14974 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14974[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14974 -> 16118[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14974 -> 16119[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14975[label="Succ wy744",fontsize=16,color="green",shape="box"];14926[label="wy748",fontsize=16,color="green",shape="box"];14927 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14927[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14927 -> 14980[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14927 -> 14981[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16175[label="wy748",fontsize=16,color="green",shape="box"];16176[label="wy755",fontsize=16,color="green",shape="box"];16246 -> 16736[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16246[label="primPlusInt (Neg (primPlusNat (Succ wy799) wy7980)) wy797",fontsize=16,color="magenta"];16246 -> 16737[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16246 -> 16738[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16247 -> 16215[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16247[label="primPlusInt (primMinusNat wy7980 (Succ wy799)) wy797",fontsize=16,color="magenta"];16247 -> 16281[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16247 -> 16282[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16247 -> 16283[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16248 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16248[label="primMinusNatS wy7250 wy7260",fontsize=16,color="magenta"];16248 -> 16284[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16248 -> 16285[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16249[label="Succ wy7250",fontsize=16,color="green",shape="box"];16250[label="Zero",fontsize=16,color="green",shape="box"];16251[label="Zero",fontsize=16,color="green",shape="box"];16252[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16252 -> 16286[label="",style="dashed", color="green", weight=3]; 291.74/213.00 16253[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16253 -> 16287[label="",style="solid", color="black", weight=3]; 291.74/213.00 16274[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16274 -> 16322[label="",style="solid", color="black", weight=3]; 291.74/213.00 16289[label="wy773000",fontsize=16,color="green",shape="box"];16290[label="wy7740",fontsize=16,color="green",shape="box"];16447 -> 16232[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16447[label="takeWhile1 (flip ltEsMyInt wy753) (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))) (flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="magenta"];16447 -> 16455[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16447 -> 16456[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16447 -> 16457[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16447 -> 16458[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16453[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17245[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17245[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17245 -> 16464[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17246[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17246[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17246 -> 16465[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16454[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17247[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17247[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17247 -> 16466[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17248[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17248[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17248 -> 16467[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 13429 -> 13413[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13429[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13430[label="Succ wy726",fontsize=16,color="green",shape="box"];13431 -> 13413[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13431[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13432[label="Succ wy726",fontsize=16,color="green",shape="box"];13433 -> 13413[label="",style="dashed", color="red", weight=0]; 291.74/213.00 13433[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13434[label="Succ wy726",fontsize=16,color="green",shape="box"];7244 -> 17027[label="",style="dashed", color="red", weight=0]; 291.74/213.00 7244[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS wy16000 wy17000)",fontsize=16,color="magenta"];7244 -> 17028[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7244 -> 17029[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7244 -> 17030[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7244 -> 17031[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7245[label="primDivNatS0 (Succ wy16000) Zero MyTrue",fontsize=16,color="black",shape="box"];7245 -> 7305[label="",style="solid", color="black", weight=3]; 291.74/213.00 7246[label="primDivNatS0 Zero (Succ wy17000) MyFalse",fontsize=16,color="black",shape="box"];7246 -> 7306[label="",style="solid", color="black", weight=3]; 291.74/213.00 7247[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];7247 -> 7307[label="",style="solid", color="black", weight=3]; 291.74/213.00 16107[label="primPlusInt (primMinusNat (Succ wy778) (Succ wy77700)) wy776",fontsize=16,color="black",shape="box"];16107 -> 16215[label="",style="solid", color="black", weight=3]; 291.74/213.00 16108[label="primPlusInt (primMinusNat (Succ wy778) Zero) wy776",fontsize=16,color="black",shape="box"];16108 -> 16216[label="",style="solid", color="black", weight=3]; 291.74/213.00 16563[label="wy776",fontsize=16,color="green",shape="box"];16564 -> 16336[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16564[label="primPlusNat (Succ wy778) wy7770",fontsize=16,color="magenta"];16564 -> 16572[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16562[label="primPlusInt (Pos wy824) wy734",fontsize=16,color="burlywood",shape="triangle"];17249[label="wy734/Pos wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17249[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17249 -> 16573[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17250[label="wy734/Neg wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17250[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17250 -> 16574[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16111[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16111 -> 16219[label="",style="solid", color="black", weight=3]; 291.74/213.00 16112[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16112 -> 16220[label="",style="solid", color="black", weight=3]; 291.74/213.00 16113[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16113 -> 16221[label="",style="solid", color="black", weight=3]; 291.74/213.00 2567 -> 1994[label="",style="dashed", color="red", weight=0]; 291.74/213.00 2567[label="properFractionQ1 wy30 wy31 (quotRemMyInt wy30 wy31)",fontsize=16,color="magenta"];2567 -> 3560[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 2567 -> 3561[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7263[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17251[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17251[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17251 -> 7318[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17252[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17252[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17252 -> 7319[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7264[label="not (esEsOrdering (primCmpInt (Pos Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17253[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17253[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17253 -> 7320[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17254[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17254[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17254 -> 7321[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7265[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17255[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17255[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17255 -> 7322[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17256[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17256[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17256 -> 7323[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7266[label="not (esEsOrdering (primCmpInt (Neg Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17257[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17257[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17257 -> 7324[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17258[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17258[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17258 -> 7325[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16275[label="wy732",fontsize=16,color="green",shape="box"];16276 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16276[label="flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734)",fontsize=16,color="magenta"];16276 -> 16323[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16276 -> 16324[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16277[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="triangle"];16277 -> 16325[label="",style="solid", color="black", weight=3]; 291.74/213.00 16278 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16278[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16318[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17259[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17259[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17259 -> 16351[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17260[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17260[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17260 -> 16352[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16319[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17261[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17261[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17261 -> 16353[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17262[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17262[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17262 -> 16354[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16320[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17263[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17263[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17263 -> 16355[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17264[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17264[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17264 -> 16356[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16321[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17265[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17265[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17265 -> 16357[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17266[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17266[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17266 -> 16358[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16114[label="Succ wy744",fontsize=16,color="green",shape="box"];16115[label="Succ wy743",fontsize=16,color="green",shape="box"];16116[label="Succ wy744",fontsize=16,color="green",shape="box"];16117[label="Succ wy743",fontsize=16,color="green",shape="box"];14976 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14976[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14976 -> 16120[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14976 -> 16121[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14977[label="Succ wy744",fontsize=16,color="green",shape="box"];14978 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14978[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14978 -> 16122[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14978 -> 16123[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14979[label="Succ wy744",fontsize=16,color="green",shape="box"];16118[label="Succ wy744",fontsize=16,color="green",shape="box"];16119[label="Succ wy743",fontsize=16,color="green",shape="box"];14980 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.00 14980[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14980 -> 16124[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14980 -> 16125[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 14981[label="Succ wy744",fontsize=16,color="green",shape="box"];16737 -> 16513[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16737[label="primPlusNat (Succ wy799) wy7980",fontsize=16,color="magenta"];16737 -> 16742[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16737 -> 16743[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16738[label="wy797",fontsize=16,color="green",shape="box"];16736[label="primPlusInt (Neg wy833) wy752",fontsize=16,color="burlywood",shape="triangle"];17267[label="wy752/Pos wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17267[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17267 -> 16744[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17268[label="wy752/Neg wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17268[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17268 -> 16745[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16281[label="wy797",fontsize=16,color="green",shape="box"];16282[label="Succ wy799",fontsize=16,color="green",shape="box"];16283[label="wy7980",fontsize=16,color="green",shape="box"];16215[label="primPlusInt (primMinusNat wy778 wy77700) wy776",fontsize=16,color="burlywood",shape="triangle"];17269[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17269[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17269 -> 16258[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17270[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17270[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17270 -> 16259[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16284[label="wy7260",fontsize=16,color="green",shape="box"];16285[label="wy7250",fontsize=16,color="green",shape="box"];16286[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16286 -> 16328[label="",style="solid", color="black", weight=3]; 291.74/213.00 16287[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16287 -> 16329[label="",style="solid", color="black", weight=3]; 291.74/213.00 16322[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16322 -> 16359[label="",style="solid", color="black", weight=3]; 291.74/213.00 16455 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16455[label="flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752)",fontsize=16,color="magenta"];16455 -> 16468[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16455 -> 16469[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16456[label="wy750",fontsize=16,color="green",shape="box"];16457[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="triangle"];16457 -> 16470[label="",style="solid", color="black", weight=3]; 291.74/213.00 16458 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16458[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16464[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17271[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17271[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17271 -> 16522[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17272[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17272[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17272 -> 16523[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16465[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17273[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17273[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17273 -> 16524[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17274[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17274[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17274 -> 16525[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16466[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17275[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17275[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17275 -> 16526[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17276[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17276[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17276 -> 16527[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16467[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17277[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17277[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17277 -> 16528[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17278[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17278[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17278 -> 16529[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17028[label="wy16000",fontsize=16,color="green",shape="box"];17029[label="wy16000",fontsize=16,color="green",shape="box"];17030[label="wy17000",fontsize=16,color="green",shape="box"];17031[label="wy17000",fontsize=16,color="green",shape="box"];17027[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy852 wy853)",fontsize=16,color="burlywood",shape="triangle"];17279[label="wy852/Succ wy8520",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17279[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17279 -> 17068[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17280[label="wy852/Zero",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17280[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17280 -> 17069[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7305[label="Succ (primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7305 -> 7338[label="",style="dashed", color="green", weight=3]; 291.74/213.00 7306[label="Zero",fontsize=16,color="green",shape="box"];7307[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7307 -> 7339[label="",style="dashed", color="green", weight=3]; 291.74/213.00 16216 -> 16562[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16216[label="primPlusInt (Pos (Succ wy778)) wy776",fontsize=16,color="magenta"];16216 -> 16565[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16216 -> 16566[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16572[label="wy7770",fontsize=16,color="green",shape="box"];16336[label="primPlusNat (Succ wy778) wy7760",fontsize=16,color="burlywood",shape="triangle"];17281[label="wy7760/Succ wy77600",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17281[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17281 -> 16405[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17282[label="wy7760/Zero",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17282[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17282 -> 16406[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16573[label="primPlusInt (Pos wy824) (Pos wy7340)",fontsize=16,color="black",shape="box"];16573 -> 16640[label="",style="solid", color="black", weight=3]; 291.74/213.00 16574[label="primPlusInt (Pos wy824) (Neg wy7340)",fontsize=16,color="black",shape="box"];16574 -> 16641[label="",style="solid", color="black", weight=3]; 291.74/213.00 16219 -> 16265[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16219[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16219 -> 16266[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16220[label="Nil",fontsize=16,color="green",shape="box"];16221[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16221 -> 16288[label="",style="solid", color="black", weight=3]; 291.74/213.00 3560[label="wy30",fontsize=16,color="green",shape="box"];3561[label="wy31",fontsize=16,color="green",shape="box"];1994[label="properFractionQ1 wy16 wy17 (quotRemMyInt wy16 wy17)",fontsize=16,color="black",shape="triangle"];1994 -> 2088[label="",style="solid", color="black", weight=3]; 291.74/213.00 7318[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7318 -> 7350[label="",style="solid", color="black", weight=3]; 291.74/213.00 7319[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7319 -> 7351[label="",style="solid", color="black", weight=3]; 291.74/213.00 7320[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17283[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17283[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17283 -> 7352[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17284[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17284[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17284 -> 7353[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7321[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17285[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17285[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17285 -> 7354[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17286[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17286[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17286 -> 7355[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7322[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7322 -> 7356[label="",style="solid", color="black", weight=3]; 291.74/213.00 7323[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7323 -> 7357[label="",style="solid", color="black", weight=3]; 291.74/213.00 7324[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17287[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17287[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17287 -> 7358[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17288[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17288[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17288 -> 7359[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7325[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17289[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17289[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17289 -> 7360[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17290[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17290[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17290 -> 7361[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16323 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16323[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16324[label="wy735",fontsize=16,color="green",shape="box"];16325[label="primPlusInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="box"];16325 -> 16360[label="",style="solid", color="black", weight=3]; 291.74/213.00 16351[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16351 -> 16368[label="",style="solid", color="black", weight=3]; 291.74/213.00 16352[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16352 -> 16369[label="",style="solid", color="black", weight=3]; 291.74/213.00 16353[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17291[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17291[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17291 -> 16370[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17292[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17292[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17292 -> 16371[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16354[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17293[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17293[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17293 -> 16372[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17294[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17294[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17294 -> 16373[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16355[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16355 -> 16374[label="",style="solid", color="black", weight=3]; 291.74/213.00 16356[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16356 -> 16375[label="",style="solid", color="black", weight=3]; 291.74/213.00 16357[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17295[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17295[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17295 -> 16376[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17296[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17296[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17296 -> 16377[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16358[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17297[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17297[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17297 -> 16378[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17298[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17298[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17298 -> 16379[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16120[label="Succ wy744",fontsize=16,color="green",shape="box"];16121[label="Succ wy743",fontsize=16,color="green",shape="box"];16122[label="Succ wy744",fontsize=16,color="green",shape="box"];16123[label="Succ wy743",fontsize=16,color="green",shape="box"];16124[label="Succ wy744",fontsize=16,color="green",shape="box"];16125[label="Succ wy743",fontsize=16,color="green",shape="box"];16742[label="wy7980",fontsize=16,color="green",shape="box"];16743[label="Succ wy799",fontsize=16,color="green",shape="box"];16513[label="primPlusNat wy778 wy77700",fontsize=16,color="burlywood",shape="triangle"];17299[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17299[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17299 -> 16630[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17300[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17300[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17300 -> 16631[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16744[label="primPlusInt (Neg wy833) (Pos wy7520)",fontsize=16,color="black",shape="box"];16744 -> 16768[label="",style="solid", color="black", weight=3]; 291.74/213.00 16745[label="primPlusInt (Neg wy833) (Neg wy7520)",fontsize=16,color="black",shape="box"];16745 -> 16769[label="",style="solid", color="black", weight=3]; 291.74/213.00 16258[label="primPlusInt (primMinusNat (Succ wy7780) wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17301[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17301[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17301 -> 16291[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17302[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17302[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17302 -> 16292[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16259[label="primPlusInt (primMinusNat Zero wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17303[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17303[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17303 -> 16293[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17304[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17304[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17304 -> 16294[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16328 -> 16364[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16328[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16328 -> 16365[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16329[label="Nil",fontsize=16,color="green",shape="box"];16359[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16359 -> 16380[label="",style="solid", color="black", weight=3]; 291.74/213.00 16468 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16468[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16469[label="wy753",fontsize=16,color="green",shape="box"];16470[label="primPlusInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="box"];16470 -> 16530[label="",style="solid", color="black", weight=3]; 291.74/213.00 16522[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16522 -> 16575[label="",style="solid", color="black", weight=3]; 291.74/213.00 16523[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16523 -> 16576[label="",style="solid", color="black", weight=3]; 291.74/213.00 16524[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17305[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17305[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17305 -> 16577[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17306[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17306[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17306 -> 16578[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16525[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17307[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17307[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17307 -> 16579[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17308[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17308[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17308 -> 16580[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16526[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16526 -> 16581[label="",style="solid", color="black", weight=3]; 291.74/213.00 16527[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16527 -> 16582[label="",style="solid", color="black", weight=3]; 291.74/213.00 16528[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17309[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17309[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17309 -> 16583[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17310[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17310[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17310 -> 16584[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16529[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17311[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17311[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17311 -> 16585[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17312[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17312[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17312 -> 16586[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17068[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) wy853)",fontsize=16,color="burlywood",shape="box"];17313[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17313[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17313 -> 17078[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17314[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17314[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17314 -> 17079[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17069[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero wy853)",fontsize=16,color="burlywood",shape="box"];17315[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17315[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17315 -> 17080[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17316[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17316[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17316 -> 17081[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7338 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 7338[label="primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero)",fontsize=16,color="magenta"];7338 -> 7410[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7338 -> 7411[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7339 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.00 7339[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];7339 -> 7412[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 7339 -> 7413[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16565[label="wy776",fontsize=16,color="green",shape="box"];16566[label="Succ wy778",fontsize=16,color="green",shape="box"];16405[label="primPlusNat (Succ wy778) (Succ wy77600)",fontsize=16,color="black",shape="box"];16405 -> 16509[label="",style="solid", color="black", weight=3]; 291.74/213.00 16406[label="primPlusNat (Succ wy778) Zero",fontsize=16,color="black",shape="box"];16406 -> 16510[label="",style="solid", color="black", weight=3]; 291.74/213.00 16640[label="Pos (primPlusNat wy824 wy7340)",fontsize=16,color="green",shape="box"];16640 -> 16647[label="",style="dashed", color="green", weight=3]; 291.74/213.00 16641[label="primMinusNat wy824 wy7340",fontsize=16,color="burlywood",shape="triangle"];17317[label="wy824/Succ wy8240",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17317[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17317 -> 16648[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17318[label="wy824/Zero",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17318[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17318 -> 16649[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16266 -> 12676[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16266[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16266 -> 16301[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16266 -> 16302[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16266 -> 16303[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16265[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="triangle"];16265 -> 16304[label="",style="solid", color="black", weight=3]; 291.74/213.00 16288[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17319[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17319[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17319 -> 16330[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17320[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17320[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17320 -> 16331[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 2088[label="properFractionQ1 wy16 wy17 (primQrmInt wy16 wy17)",fontsize=16,color="black",shape="box"];2088 -> 2189[label="",style="solid", color="black", weight=3]; 291.74/213.00 7350[label="not (esEsOrdering (primCmpNat (Succ wy2000) wy4390) GT)",fontsize=16,color="burlywood",shape="triangle"];17321[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17321[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17321 -> 7421[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17322[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17322[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17322 -> 7422[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7351[label="not (esEsOrdering GT GT)",fontsize=16,color="black",shape="triangle"];7351 -> 7423[label="",style="solid", color="black", weight=3]; 291.74/213.00 7352[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7352 -> 7424[label="",style="solid", color="black", weight=3]; 291.74/213.00 7353[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7353 -> 7425[label="",style="solid", color="black", weight=3]; 291.74/213.00 7354[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7354 -> 7426[label="",style="solid", color="black", weight=3]; 291.74/213.00 7355[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7355 -> 7427[label="",style="solid", color="black", weight=3]; 291.74/213.00 7356[label="not (esEsOrdering LT GT)",fontsize=16,color="black",shape="triangle"];7356 -> 7428[label="",style="solid", color="black", weight=3]; 291.74/213.00 7357[label="not (esEsOrdering (primCmpNat wy4390 (Succ wy2000)) GT)",fontsize=16,color="burlywood",shape="triangle"];17323[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17323[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17323 -> 7429[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17324[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17324[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17324 -> 7430[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 7358[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7358 -> 7431[label="",style="solid", color="black", weight=3]; 291.74/213.00 7359[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7359 -> 7432[label="",style="solid", color="black", weight=3]; 291.74/213.00 7360[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7360 -> 7433[label="",style="solid", color="black", weight=3]; 291.74/213.00 7361[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7361 -> 7434[label="",style="solid", color="black", weight=3]; 291.74/213.00 16360[label="primPlusInt (primMinusInt (Pos Zero) wy733) wy734",fontsize=16,color="burlywood",shape="box"];17325[label="wy733/Pos wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17325[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17325 -> 16381[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17326[label="wy733/Neg wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17326[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17326 -> 16382[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16368 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16368[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16368 -> 16449[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16368 -> 16450[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16369 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16369[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16369 -> 16460[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16369 -> 16461[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16370[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16370 -> 16471[label="",style="solid", color="black", weight=3]; 291.74/213.00 16371[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16371 -> 16472[label="",style="solid", color="black", weight=3]; 291.74/213.00 16372[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16372 -> 16473[label="",style="solid", color="black", weight=3]; 291.74/213.00 16373[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16373 -> 16474[label="",style="solid", color="black", weight=3]; 291.74/213.00 16374 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16374[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16374 -> 16451[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16374 -> 16452[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16375 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16375[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16375 -> 16462[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16375 -> 16463[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16376[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16376 -> 16475[label="",style="solid", color="black", weight=3]; 291.74/213.00 16377[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16377 -> 16476[label="",style="solid", color="black", weight=3]; 291.74/213.00 16378[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16378 -> 16477[label="",style="solid", color="black", weight=3]; 291.74/213.00 16379[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16379 -> 16478[label="",style="solid", color="black", weight=3]; 291.74/213.00 16630[label="primPlusNat (Succ wy7780) wy77700",fontsize=16,color="burlywood",shape="box"];17327[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17327[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17327 -> 16757[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17328[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17328[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17328 -> 16758[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16631[label="primPlusNat Zero wy77700",fontsize=16,color="burlywood",shape="box"];17329[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17329[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17329 -> 16759[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17330[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17330[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17330 -> 16760[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16768 -> 16641[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16768[label="primMinusNat wy7520 wy833",fontsize=16,color="magenta"];16768 -> 16795[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16768 -> 16796[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16769[label="Neg (primPlusNat wy833 wy7520)",fontsize=16,color="green",shape="box"];16769 -> 16797[label="",style="dashed", color="green", weight=3]; 291.74/213.00 16291[label="primPlusInt (primMinusNat (Succ wy7780) (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16291 -> 16332[label="",style="solid", color="black", weight=3]; 291.74/213.00 16292[label="primPlusInt (primMinusNat (Succ wy7780) Zero) wy776",fontsize=16,color="black",shape="box"];16292 -> 16333[label="",style="solid", color="black", weight=3]; 291.74/213.00 16293[label="primPlusInt (primMinusNat Zero (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16293 -> 16334[label="",style="solid", color="black", weight=3]; 291.74/213.00 16294[label="primPlusInt (primMinusNat Zero Zero) wy776",fontsize=16,color="black",shape="box"];16294 -> 16335[label="",style="solid", color="black", weight=3]; 291.74/213.00 16365 -> 14894[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16365[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16365 -> 16390[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16365 -> 16391[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16365 -> 16392[label="",style="dashed", color="magenta", weight=3]; 291.74/213.00 16364[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="triangle"];16364 -> 16393[label="",style="solid", color="black", weight=3]; 291.74/213.00 16380[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17331[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17331[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17331 -> 16479[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17332[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17332[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17332 -> 16480[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16530[label="primPlusInt (primMinusInt (Neg Zero) wy751) wy752",fontsize=16,color="burlywood",shape="box"];17333[label="wy751/Pos wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17333[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17333 -> 16587[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 17334[label="wy751/Neg wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17334[label="",style="solid", color="burlywood", weight=9]; 291.74/213.00 17334 -> 16588[label="",style="solid", color="burlywood", weight=3]; 291.74/213.00 16575 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.00 16575[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16575 -> 16643[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16575 -> 16644[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16576 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16576[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16576 -> 16651[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16576 -> 16652[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16577[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16577 -> 16655[label="",style="solid", color="black", weight=3]; 291.74/213.01 16578[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16578 -> 16656[label="",style="solid", color="black", weight=3]; 291.74/213.01 16579[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16579 -> 16657[label="",style="solid", color="black", weight=3]; 291.74/213.01 16580[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16580 -> 16658[label="",style="solid", color="black", weight=3]; 291.74/213.01 16581 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16581[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16581 -> 16645[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16581 -> 16646[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16582 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16582[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16582 -> 16653[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16582 -> 16654[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16583[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16583 -> 16659[label="",style="solid", color="black", weight=3]; 291.74/213.01 16584[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16584 -> 16660[label="",style="solid", color="black", weight=3]; 291.74/213.01 16585[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16585 -> 16661[label="",style="solid", color="black", weight=3]; 291.74/213.01 16586[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16586 -> 16662[label="",style="solid", color="black", weight=3]; 291.74/213.01 17078[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) (Succ wy8530))",fontsize=16,color="black",shape="box"];17078 -> 17094[label="",style="solid", color="black", weight=3]; 291.74/213.01 17079[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) Zero)",fontsize=16,color="black",shape="box"];17079 -> 17095[label="",style="solid", color="black", weight=3]; 291.74/213.01 17080[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero (Succ wy8530))",fontsize=16,color="black",shape="box"];17080 -> 17096[label="",style="solid", color="black", weight=3]; 291.74/213.01 17081[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];17081 -> 17097[label="",style="solid", color="black", weight=3]; 291.74/213.01 7410 -> 6811[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7410[label="primMinusNatS (Succ wy16000) Zero",fontsize=16,color="magenta"];7410 -> 7712[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 7411[label="Zero",fontsize=16,color="green",shape="box"];7412 -> 6851[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7412[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];7413[label="Zero",fontsize=16,color="green",shape="box"];16509[label="Succ (Succ (primPlusNat wy778 wy77600))",fontsize=16,color="green",shape="box"];16509 -> 16632[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16510[label="Succ wy778",fontsize=16,color="green",shape="box"];16647 -> 16513[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16647[label="primPlusNat wy824 wy7340",fontsize=16,color="magenta"];16647 -> 16663[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16647 -> 16664[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16648[label="primMinusNat (Succ wy8240) wy7340",fontsize=16,color="burlywood",shape="box"];17335[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17335[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17335 -> 16665[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17336[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17336[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17336 -> 16666[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16649[label="primMinusNat Zero wy7340",fontsize=16,color="burlywood",shape="box"];17337[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17337[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17337 -> 16667[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17338[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17338[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17338 -> 16668[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16301[label="wy758",fontsize=16,color="green",shape="box"];16302[label="wy732",fontsize=16,color="green",shape="box"];16303[label="wy762",fontsize=16,color="green",shape="box"];16304[label="takeWhile2 (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="box"];16304 -> 16342[label="",style="solid", color="black", weight=3]; 291.74/213.01 16330[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17339[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17339[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17339 -> 16394[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17340[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17340[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17340 -> 16395[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16331[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17341[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17341[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17341 -> 16396[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17342[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17342[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17342 -> 16397[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 2189[label="properFractionQ1 wy16 wy17 (Tup2 (primQuotInt wy16 wy17) (primRemInt wy16 wy17))",fontsize=16,color="black",shape="box"];2189 -> 2519[label="",style="solid", color="black", weight=3]; 291.74/213.01 7421[label="not (esEsOrdering (primCmpNat (Succ wy2000) (Succ wy43900)) GT)",fontsize=16,color="black",shape="box"];7421 -> 10560[label="",style="solid", color="black", weight=3]; 291.74/213.01 7422[label="not (esEsOrdering (primCmpNat (Succ wy2000) Zero) GT)",fontsize=16,color="black",shape="box"];7422 -> 10561[label="",style="solid", color="black", weight=3]; 291.74/213.01 7424 -> 7357[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7424[label="not (esEsOrdering (primCmpNat Zero (Succ wy43900)) GT)",fontsize=16,color="magenta"];7424 -> 10563[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 7424 -> 10564[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 7425[label="not (esEsOrdering EQ GT)",fontsize=16,color="black",shape="triangle"];7425 -> 10565[label="",style="solid", color="black", weight=3]; 291.74/213.01 7426 -> 7351[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7426[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];7427 -> 7425[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7427[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7429[label="not (esEsOrdering (primCmpNat (Succ wy43900) (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7429 -> 10567[label="",style="solid", color="black", weight=3]; 291.74/213.01 7430[label="not (esEsOrdering (primCmpNat Zero (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7430 -> 10568[label="",style="solid", color="black", weight=3]; 291.74/213.01 7431 -> 7356[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7431[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];7432 -> 7425[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7432[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7433 -> 7350[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7433[label="not (esEsOrdering (primCmpNat (Succ wy43900) Zero) GT)",fontsize=16,color="magenta"];7433 -> 10569[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 7433 -> 10570[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 7434 -> 7425[label="",style="dashed", color="red", weight=0]; 291.74/213.01 7434[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16381[label="primPlusInt (primMinusInt (Pos Zero) (Pos wy7330)) wy734",fontsize=16,color="black",shape="box"];16381 -> 16481[label="",style="solid", color="black", weight=3]; 291.74/213.01 16382[label="primPlusInt (primMinusInt (Pos Zero) (Neg wy7330)) wy734",fontsize=16,color="black",shape="box"];16382 -> 16482[label="",style="solid", color="black", weight=3]; 291.74/213.01 16449 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16449[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16449 -> 16483[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16449 -> 16484[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16450 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16450[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16448[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) wy820",fontsize=16,color="burlywood",shape="triangle"];17343[label="wy820/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17343[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17343 -> 16485[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17344[label="wy820/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17344[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17344 -> 16486[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16460 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16460[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16461 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16461[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16459[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) wy822",fontsize=16,color="burlywood",shape="triangle"];17345[label="wy822/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17345[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17345 -> 16487[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17346[label="wy822/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17346[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17346 -> 16488[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16471 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16471[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16471 -> 16531[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16471 -> 16532[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16471 -> 16533[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16472 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16472[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16472 -> 16534[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16472 -> 16535[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16472 -> 16536[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16473 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16473[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16473 -> 16537[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16473 -> 16538[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16473 -> 16539[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16474 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16474[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16474 -> 16540[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16474 -> 16541[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16474 -> 16542[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16451 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16451[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16452 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16452[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16462 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16462[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16462 -> 16489[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16462 -> 16490[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16463 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16463[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16475 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16475[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16475 -> 16543[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16475 -> 16544[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16475 -> 16545[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16476 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16476[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16476 -> 16546[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16476 -> 16547[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16476 -> 16548[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16477 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16477[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16477 -> 16549[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16477 -> 16550[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16477 -> 16551[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16478 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16478[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16478 -> 16552[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16478 -> 16553[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16478 -> 16554[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16757[label="primPlusNat (Succ wy7780) (Succ wy777000)",fontsize=16,color="black",shape="box"];16757 -> 16770[label="",style="solid", color="black", weight=3]; 291.74/213.01 16758[label="primPlusNat (Succ wy7780) Zero",fontsize=16,color="black",shape="box"];16758 -> 16771[label="",style="solid", color="black", weight=3]; 291.74/213.01 16759[label="primPlusNat Zero (Succ wy777000)",fontsize=16,color="black",shape="box"];16759 -> 16772[label="",style="solid", color="black", weight=3]; 291.74/213.01 16760[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16760 -> 16773[label="",style="solid", color="black", weight=3]; 291.74/213.01 16795[label="wy833",fontsize=16,color="green",shape="box"];16796[label="wy7520",fontsize=16,color="green",shape="box"];16797 -> 16513[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16797[label="primPlusNat wy833 wy7520",fontsize=16,color="magenta"];16797 -> 16802[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16797 -> 16803[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16332 -> 16215[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16332[label="primPlusInt (primMinusNat wy7780 wy777000) wy776",fontsize=16,color="magenta"];16332 -> 16398[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16332 -> 16399[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16333 -> 16562[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16333[label="primPlusInt (Pos (Succ wy7780)) wy776",fontsize=16,color="magenta"];16333 -> 16567[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16333 -> 16568[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16334 -> 16736[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16334[label="primPlusInt (Neg (Succ wy777000)) wy776",fontsize=16,color="magenta"];16334 -> 16739[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16334 -> 16740[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16335 -> 16562[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16335[label="primPlusInt (Pos Zero) wy776",fontsize=16,color="magenta"];16335 -> 16569[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16335 -> 16570[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16390[label="wy784",fontsize=16,color="green",shape="box"];16391[label="wy780",fontsize=16,color="green",shape="box"];16392[label="wy750",fontsize=16,color="green",shape="box"];16393[label="takeWhile2 (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="box"];16393 -> 16495[label="",style="solid", color="black", weight=3]; 291.74/213.01 16479[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17347[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17347[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17347 -> 16555[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17348[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17348[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17348 -> 16556[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16480[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17349[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17349[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17349 -> 16557[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17350[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17350[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17350 -> 16558[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16587[label="primPlusInt (primMinusInt (Neg Zero) (Pos wy7510)) wy752",fontsize=16,color="black",shape="box"];16587 -> 16669[label="",style="solid", color="black", weight=3]; 291.74/213.01 16588[label="primPlusInt (primMinusInt (Neg Zero) (Neg wy7510)) wy752",fontsize=16,color="black",shape="box"];16588 -> 16670[label="",style="solid", color="black", weight=3]; 291.74/213.01 16643 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16643[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16643 -> 16671[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16643 -> 16672[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16644 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16644[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16642[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) wy828",fontsize=16,color="burlywood",shape="triangle"];17351[label="wy828/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17351[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17351 -> 16673[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17352[label="wy828/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17352[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17352 -> 16674[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16651 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16651[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16652 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16652[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16650[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) wy830",fontsize=16,color="burlywood",shape="triangle"];17353[label="wy830/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17353[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17353 -> 16675[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17354[label="wy830/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17354[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17354 -> 16676[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16655 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16655[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16655 -> 16708[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16655 -> 16709[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16655 -> 16710[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16656 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16656[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16656 -> 16711[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16656 -> 16712[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16656 -> 16713[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16657 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16657[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16657 -> 16714[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16657 -> 16715[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16657 -> 16716[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16658 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16658[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16658 -> 16717[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16658 -> 16718[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16658 -> 16719[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16645 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16645[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16646 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16646[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16653 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16653[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16653 -> 16677[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16653 -> 16678[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16654 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16654[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16659 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16659[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16659 -> 16720[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16659 -> 16721[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16659 -> 16722[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16660 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16660[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16660 -> 16723[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16660 -> 16724[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16660 -> 16725[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16661 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16661[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16661 -> 16726[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16661 -> 16727[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16661 -> 16728[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16662 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16662[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16662 -> 16729[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16662 -> 16730[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16662 -> 16731[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17094 -> 17027[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17094[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy8520 wy8530)",fontsize=16,color="magenta"];17094 -> 17110[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17094 -> 17111[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17095[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="black",shape="triangle"];17095 -> 17112[label="",style="solid", color="black", weight=3]; 291.74/213.01 17096[label="primDivNatS0 (Succ wy850) (Succ wy851) MyFalse",fontsize=16,color="black",shape="box"];17096 -> 17113[label="",style="solid", color="black", weight=3]; 291.74/213.01 17097 -> 17095[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17097[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="magenta"];7712[label="wy16000",fontsize=16,color="green",shape="box"];6811[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="black",shape="triangle"];6811 -> 7063[label="",style="solid", color="black", weight=3]; 291.74/213.01 6851[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];6851 -> 7092[label="",style="solid", color="black", weight=3]; 291.74/213.01 16632 -> 16513[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16632[label="primPlusNat wy778 wy77600",fontsize=16,color="magenta"];16632 -> 16679[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16663[label="wy7340",fontsize=16,color="green",shape="box"];16664[label="wy824",fontsize=16,color="green",shape="box"];16665[label="primMinusNat (Succ wy8240) (Succ wy73400)",fontsize=16,color="black",shape="box"];16665 -> 16732[label="",style="solid", color="black", weight=3]; 291.74/213.01 16666[label="primMinusNat (Succ wy8240) Zero",fontsize=16,color="black",shape="box"];16666 -> 16733[label="",style="solid", color="black", weight=3]; 291.74/213.01 16667[label="primMinusNat Zero (Succ wy73400)",fontsize=16,color="black",shape="box"];16667 -> 16734[label="",style="solid", color="black", weight=3]; 291.74/213.01 16668[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];16668 -> 16735[label="",style="solid", color="black", weight=3]; 291.74/213.01 16342 -> 13641[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16342[label="takeWhile1 (flip ltEsMyInt wy735) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813) (flip ltEsMyInt wy735 wy758)",fontsize=16,color="magenta"];16342 -> 16411[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16342 -> 16412[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16342 -> 16413[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16394[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17355[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17355[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17355 -> 16497[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17356[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17356[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17356 -> 16498[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16395[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17357[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17357[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17357 -> 16499[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17358[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17358[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17358 -> 16500[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16396[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17359[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17359[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17359 -> 16501[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17360[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17360[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17360 -> 16502[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16397[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17361[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17361[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17361 -> 16503[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17362[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17362[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17362 -> 16504[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 2519[label="primQuotInt wy16 wy17",fontsize=16,color="burlywood",shape="box"];17363[label="wy16/Pos wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17363[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17363 -> 3636[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17364[label="wy16/Neg wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17364[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17364 -> 3637[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 10560[label="not (esEsOrdering (primCmpNat wy2000 wy43900) GT)",fontsize=16,color="burlywood",shape="triangle"];17365[label="wy2000/Succ wy20000",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17365[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17365 -> 13627[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17366[label="wy2000/Zero",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17366[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17366 -> 13628[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 10561 -> 7351[label="",style="dashed", color="red", weight=0]; 291.74/213.01 10561[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];10563[label="wy43900",fontsize=16,color="green",shape="box"];10564[label="Zero",fontsize=16,color="green",shape="box"];10565 -> 7428[label="",style="dashed", color="red", weight=0]; 291.74/213.01 10565[label="not MyFalse",fontsize=16,color="magenta"];10567 -> 10560[label="",style="dashed", color="red", weight=0]; 291.74/213.01 10567[label="not (esEsOrdering (primCmpNat wy43900 wy2000) GT)",fontsize=16,color="magenta"];10567 -> 13629[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 10567 -> 13630[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 10568 -> 7356[label="",style="dashed", color="red", weight=0]; 291.74/213.01 10568[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];10569[label="Zero",fontsize=16,color="green",shape="box"];10570[label="wy43900",fontsize=16,color="green",shape="box"];16481 -> 16215[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16481[label="primPlusInt (primMinusNat Zero wy7330) wy734",fontsize=16,color="magenta"];16481 -> 16559[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16481 -> 16560[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16481 -> 16561[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16482 -> 16562[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16482[label="primPlusInt (Pos (primPlusNat Zero wy7330)) wy734",fontsize=16,color="magenta"];16482 -> 16571[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16483[label="wy7350",fontsize=16,color="green",shape="box"];16484[label="Succ wy73800",fontsize=16,color="green",shape="box"];16485[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16485 -> 16589[label="",style="solid", color="black", weight=3]; 291.74/213.01 16486[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyFalse",fontsize=16,color="black",shape="box"];16486 -> 16590[label="",style="solid", color="black", weight=3]; 291.74/213.01 16487[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16487 -> 16591[label="",style="solid", color="black", weight=3]; 291.74/213.01 16488[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyFalse",fontsize=16,color="black",shape="box"];16488 -> 16592[label="",style="solid", color="black", weight=3]; 291.74/213.01 16531[label="Succ wy73500",fontsize=16,color="green",shape="box"];16532 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16532[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16532 -> 16593[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16532 -> 16594[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16533 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16533[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16534[label="Zero",fontsize=16,color="green",shape="box"];16535 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16535[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16536 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16536[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16537[label="Succ wy73500",fontsize=16,color="green",shape="box"];16538 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16538[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16539 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16539[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16540[label="Zero",fontsize=16,color="green",shape="box"];16541 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16541[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16542 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16542[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16489[label="Succ wy73800",fontsize=16,color="green",shape="box"];16490[label="wy7350",fontsize=16,color="green",shape="box"];16543[label="Succ wy73500",fontsize=16,color="green",shape="box"];16544 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16544[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16545 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16545[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16546[label="Zero",fontsize=16,color="green",shape="box"];16547 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16547[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16548 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16548[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16549[label="Succ wy73500",fontsize=16,color="green",shape="box"];16550 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16550[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16550 -> 16595[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16550 -> 16596[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16551 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16551[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16552[label="Zero",fontsize=16,color="green",shape="box"];16553 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16553[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16554 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16554[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16770[label="Succ (Succ (primPlusNat wy7780 wy777000))",fontsize=16,color="green",shape="box"];16770 -> 16798[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16771[label="Succ wy7780",fontsize=16,color="green",shape="box"];16772[label="Succ wy777000",fontsize=16,color="green",shape="box"];16773[label="Zero",fontsize=16,color="green",shape="box"];16802[label="wy7520",fontsize=16,color="green",shape="box"];16803[label="wy833",fontsize=16,color="green",shape="box"];16398[label="wy777000",fontsize=16,color="green",shape="box"];16399[label="wy7780",fontsize=16,color="green",shape="box"];16567[label="wy776",fontsize=16,color="green",shape="box"];16568[label="Succ wy7780",fontsize=16,color="green",shape="box"];16739[label="Succ wy777000",fontsize=16,color="green",shape="box"];16740[label="wy776",fontsize=16,color="green",shape="box"];16569[label="wy776",fontsize=16,color="green",shape="box"];16570[label="Zero",fontsize=16,color="green",shape="box"];16495 -> 16188[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16495[label="takeWhile1 (flip ltEsMyInt wy753) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816) (flip ltEsMyInt wy753 wy780)",fontsize=16,color="magenta"];16495 -> 16601[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16495 -> 16602[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16495 -> 16603[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16555[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17367[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17367[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17367 -> 16604[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17368[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17368[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17368 -> 16605[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16556[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17369[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17369[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17369 -> 16606[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17370[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17370[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17370 -> 16607[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16557[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17371[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17371[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17371 -> 16608[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17372[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17372[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17372 -> 16609[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16558[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17373[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17373[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17373 -> 16610[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17374[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17374[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17374 -> 16611[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16669 -> 16736[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16669[label="primPlusInt (Neg (primPlusNat Zero wy7510)) wy752",fontsize=16,color="magenta"];16669 -> 16741[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16670 -> 16215[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16670[label="primPlusInt (primMinusNat wy7510 Zero) wy752",fontsize=16,color="magenta"];16670 -> 16746[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16670 -> 16747[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16670 -> 16748[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16671[label="wy7530",fontsize=16,color="green",shape="box"];16672[label="Succ wy75600",fontsize=16,color="green",shape="box"];16673[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16673 -> 16749[label="",style="solid", color="black", weight=3]; 291.74/213.01 16674[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyFalse",fontsize=16,color="black",shape="box"];16674 -> 16750[label="",style="solid", color="black", weight=3]; 291.74/213.01 16675[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16675 -> 16751[label="",style="solid", color="black", weight=3]; 291.74/213.01 16676[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyFalse",fontsize=16,color="black",shape="box"];16676 -> 16752[label="",style="solid", color="black", weight=3]; 291.74/213.01 16708 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16708[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16708 -> 16753[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16708 -> 16754[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16709[label="Succ wy75300",fontsize=16,color="green",shape="box"];16710 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16710[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16711 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16711[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16712[label="Zero",fontsize=16,color="green",shape="box"];16713 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16713[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16714 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16714[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16715 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16715[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16716[label="Succ wy75300",fontsize=16,color="green",shape="box"];16717 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16717[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16718 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16718[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16719[label="Zero",fontsize=16,color="green",shape="box"];16677[label="Succ wy75600",fontsize=16,color="green",shape="box"];16678[label="wy7530",fontsize=16,color="green",shape="box"];16720 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16720[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16721[label="Succ wy75300",fontsize=16,color="green",shape="box"];16722 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16722[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16723 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16723[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16724[label="Zero",fontsize=16,color="green",shape="box"];16725 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16725[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16726 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16726[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16726 -> 16755[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16726 -> 16756[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16727 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16727[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16728[label="Succ wy75300",fontsize=16,color="green",shape="box"];16729 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16729[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16730 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16730[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16731[label="Zero",fontsize=16,color="green",shape="box"];17110[label="wy8520",fontsize=16,color="green",shape="box"];17111[label="wy8530",fontsize=16,color="green",shape="box"];17112[label="Succ (primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851)))",fontsize=16,color="green",shape="box"];17112 -> 17118[label="",style="dashed", color="green", weight=3]; 291.74/213.01 17113[label="Zero",fontsize=16,color="green",shape="box"];7063[label="Succ wy40000",fontsize=16,color="green",shape="box"];7092[label="Zero",fontsize=16,color="green",shape="box"];16679[label="wy77600",fontsize=16,color="green",shape="box"];16732 -> 16641[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16732[label="primMinusNat wy8240 wy73400",fontsize=16,color="magenta"];16732 -> 16761[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16732 -> 16762[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16733[label="Pos (Succ wy8240)",fontsize=16,color="green",shape="box"];16734[label="Neg (Succ wy73400)",fontsize=16,color="green",shape="box"];16735[label="Pos Zero",fontsize=16,color="green",shape="box"];16411[label="wy813",fontsize=16,color="green",shape="box"];16412[label="wy758",fontsize=16,color="green",shape="box"];16413 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16413[label="flip ltEsMyInt wy735 wy758",fontsize=16,color="magenta"];16413 -> 16516[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16413 -> 16517[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16497[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16497 -> 16613[label="",style="solid", color="black", weight=3]; 291.74/213.01 16498[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16498 -> 16614[label="",style="solid", color="black", weight=3]; 291.74/213.01 16499[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17375[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17375[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17375 -> 16615[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17376[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17376[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17376 -> 16616[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16500[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17377[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17377[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17377 -> 16617[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17378[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17378[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17378 -> 16618[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16501[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16501 -> 16619[label="",style="solid", color="black", weight=3]; 291.74/213.01 16502[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16502 -> 16620[label="",style="solid", color="black", weight=3]; 291.74/213.01 16503[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17379[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17379[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17379 -> 16621[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17380[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17380[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17380 -> 16622[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16504[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17381[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17381[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17381 -> 16623[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17382[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17382[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17382 -> 16624[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 3636[label="primQuotInt (Pos wy160) wy17",fontsize=16,color="burlywood",shape="box"];17383[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17383[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17383 -> 4336[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17384[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17384[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17384 -> 4337[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 3637[label="primQuotInt (Neg wy160) wy17",fontsize=16,color="burlywood",shape="box"];17385[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17385[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17385 -> 4338[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17386[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17386[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17386 -> 4339[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 13627[label="not (esEsOrdering (primCmpNat (Succ wy20000) wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17387[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17387[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17387 -> 14988[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17388[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17388[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17388 -> 14989[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 13628[label="not (esEsOrdering (primCmpNat Zero wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17389[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17389[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17389 -> 14990[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17390[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17390[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17390 -> 14991[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 13629[label="wy43900",fontsize=16,color="green",shape="box"];13630[label="wy2000",fontsize=16,color="green",shape="box"];16559[label="wy734",fontsize=16,color="green",shape="box"];16560[label="wy7330",fontsize=16,color="green",shape="box"];16561[label="Zero",fontsize=16,color="green",shape="box"];16571[label="primPlusNat Zero wy7330",fontsize=16,color="burlywood",shape="box"];17391[label="wy7330/Succ wy73300",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17391[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17391 -> 16625[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17392[label="wy7330/Zero",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17392[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17392 -> 16626[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16589[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821))",fontsize=16,color="green",shape="box"];16589 -> 16680[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16590[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) otherwise",fontsize=16,color="black",shape="box"];16590 -> 16681[label="",style="solid", color="black", weight=3]; 291.74/213.01 16591[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823))",fontsize=16,color="green",shape="box"];16591 -> 16682[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16592[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) otherwise",fontsize=16,color="black",shape="box"];16592 -> 16683[label="",style="solid", color="black", weight=3]; 291.74/213.01 16593[label="Succ wy73500",fontsize=16,color="green",shape="box"];16594[label="Zero",fontsize=16,color="green",shape="box"];16595[label="Zero",fontsize=16,color="green",shape="box"];16596[label="Succ wy73500",fontsize=16,color="green",shape="box"];16798 -> 16513[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16798[label="primPlusNat wy7780 wy777000",fontsize=16,color="magenta"];16798 -> 16804[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16798 -> 16805[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16601[label="wy816",fontsize=16,color="green",shape="box"];16602 -> 5275[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16602[label="flip ltEsMyInt wy753 wy780",fontsize=16,color="magenta"];16602 -> 16689[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16602 -> 16690[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16603[label="wy780",fontsize=16,color="green",shape="box"];16604[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16604 -> 16691[label="",style="solid", color="black", weight=3]; 291.74/213.01 16605[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16605 -> 16692[label="",style="solid", color="black", weight=3]; 291.74/213.01 16606[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17393[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17393[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17393 -> 16693[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17394[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17394[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17394 -> 16694[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16607[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17395[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17395[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17395 -> 16695[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17396[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17396[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17396 -> 16696[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16608[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16608 -> 16697[label="",style="solid", color="black", weight=3]; 291.74/213.01 16609[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16609 -> 16698[label="",style="solid", color="black", weight=3]; 291.74/213.01 16610[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17397[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17397[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17397 -> 16699[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17398[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17398[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17398 -> 16700[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16611[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17399[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17399[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17399 -> 16701[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17400[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17400[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17400 -> 16702[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16741 -> 16513[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16741[label="primPlusNat Zero wy7510",fontsize=16,color="magenta"];16741 -> 16763[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16741 -> 16764[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16746[label="wy752",fontsize=16,color="green",shape="box"];16747[label="Zero",fontsize=16,color="green",shape="box"];16748[label="wy7510",fontsize=16,color="green",shape="box"];16749[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829))",fontsize=16,color="green",shape="box"];16749 -> 16774[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16750[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) otherwise",fontsize=16,color="black",shape="box"];16750 -> 16775[label="",style="solid", color="black", weight=3]; 291.74/213.01 16751[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831))",fontsize=16,color="green",shape="box"];16751 -> 16776[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16752[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) otherwise",fontsize=16,color="black",shape="box"];16752 -> 16777[label="",style="solid", color="black", weight=3]; 291.74/213.01 16753[label="Succ wy75300",fontsize=16,color="green",shape="box"];16754[label="Zero",fontsize=16,color="green",shape="box"];16755[label="Zero",fontsize=16,color="green",shape="box"];16756[label="Succ wy75300",fontsize=16,color="green",shape="box"];17118 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17118[label="primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851))",fontsize=16,color="magenta"];17118 -> 17119[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17118 -> 17120[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16761[label="wy73400",fontsize=16,color="green",shape="box"];16762[label="wy8240",fontsize=16,color="green",shape="box"];16516[label="wy758",fontsize=16,color="green",shape="box"];16517[label="wy735",fontsize=16,color="green",shape="box"];16613 -> 16705[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16613[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16613 -> 16706[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16614 -> 16765[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16614[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16614 -> 16766[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16615[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16615 -> 16778[label="",style="solid", color="black", weight=3]; 291.74/213.01 16616[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16616 -> 16779[label="",style="solid", color="black", weight=3]; 291.74/213.01 16617[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16617 -> 16780[label="",style="solid", color="black", weight=3]; 291.74/213.01 16618[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16618 -> 16781[label="",style="solid", color="black", weight=3]; 291.74/213.01 16619 -> 16705[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16619[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16619 -> 16707[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16620 -> 16765[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16620[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16620 -> 16767[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16621[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16621 -> 16782[label="",style="solid", color="black", weight=3]; 291.74/213.01 16622[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16622 -> 16783[label="",style="solid", color="black", weight=3]; 291.74/213.01 16623[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16623 -> 16784[label="",style="solid", color="black", weight=3]; 291.74/213.01 16624[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16624 -> 16785[label="",style="solid", color="black", weight=3]; 291.74/213.01 4336[label="primQuotInt (Pos wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17401[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17401[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17401 -> 4806[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17402[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17402[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17402 -> 4807[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 4337[label="primQuotInt (Pos wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17403[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17403[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17403 -> 4808[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17404[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17404[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17404 -> 4809[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 4338[label="primQuotInt (Neg wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17405[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17405[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17405 -> 4810[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17406[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17406[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17406 -> 4811[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 4339[label="primQuotInt (Neg wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17407[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17407[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17407 -> 4812[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17408[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17408[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17408 -> 4813[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 14988[label="not (esEsOrdering (primCmpNat (Succ wy20000) (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14988 -> 16222[label="",style="solid", color="black", weight=3]; 291.74/213.01 14989[label="not (esEsOrdering (primCmpNat (Succ wy20000) Zero) GT)",fontsize=16,color="black",shape="box"];14989 -> 16223[label="",style="solid", color="black", weight=3]; 291.74/213.01 14990[label="not (esEsOrdering (primCmpNat Zero (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14990 -> 16224[label="",style="solid", color="black", weight=3]; 291.74/213.01 14991[label="not (esEsOrdering (primCmpNat Zero Zero) GT)",fontsize=16,color="black",shape="box"];14991 -> 16225[label="",style="solid", color="black", weight=3]; 291.74/213.01 16625[label="primPlusNat Zero (Succ wy73300)",fontsize=16,color="black",shape="box"];16625 -> 16786[label="",style="solid", color="black", weight=3]; 291.74/213.01 16626[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16626 -> 16787[label="",style="solid", color="black", weight=3]; 291.74/213.01 16680[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821)",fontsize=16,color="black",shape="box"];16680 -> 16788[label="",style="solid", color="black", weight=3]; 291.74/213.01 16681[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16681 -> 16789[label="",style="solid", color="black", weight=3]; 291.74/213.01 16682[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823)",fontsize=16,color="black",shape="box"];16682 -> 16790[label="",style="solid", color="black", weight=3]; 291.74/213.01 16683[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16683 -> 16791[label="",style="solid", color="black", weight=3]; 291.74/213.01 16804[label="wy777000",fontsize=16,color="green",shape="box"];16805[label="wy7780",fontsize=16,color="green",shape="box"];16689[label="wy780",fontsize=16,color="green",shape="box"];16690[label="wy753",fontsize=16,color="green",shape="box"];16691 -> 16792[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16691[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16691 -> 16793[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16692 -> 16799[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16692[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16692 -> 16800[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16693[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16693 -> 16806[label="",style="solid", color="black", weight=3]; 291.74/213.01 16694[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16694 -> 16807[label="",style="solid", color="black", weight=3]; 291.74/213.01 16695[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16695 -> 16808[label="",style="solid", color="black", weight=3]; 291.74/213.01 16696[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16696 -> 16809[label="",style="solid", color="black", weight=3]; 291.74/213.01 16697 -> 16792[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16697[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16697 -> 16794[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16698 -> 16799[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16698[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16698 -> 16801[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16699[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16699 -> 16810[label="",style="solid", color="black", weight=3]; 291.74/213.01 16700[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16700 -> 16811[label="",style="solid", color="black", weight=3]; 291.74/213.01 16701[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16701 -> 16812[label="",style="solid", color="black", weight=3]; 291.74/213.01 16702[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16702 -> 16813[label="",style="solid", color="black", weight=3]; 291.74/213.01 16763[label="wy7510",fontsize=16,color="green",shape="box"];16764[label="Zero",fontsize=16,color="green",shape="box"];16774[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829)",fontsize=16,color="black",shape="box"];16774 -> 16814[label="",style="solid", color="black", weight=3]; 291.74/213.01 16775[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16775 -> 16815[label="",style="solid", color="black", weight=3]; 291.74/213.01 16776[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831)",fontsize=16,color="black",shape="box"];16776 -> 16816[label="",style="solid", color="black", weight=3]; 291.74/213.01 16777[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16777 -> 16817[label="",style="solid", color="black", weight=3]; 291.74/213.01 17119 -> 13663[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17119[label="primMinusNatS (Succ wy850) (Succ wy851)",fontsize=16,color="magenta"];17119 -> 17121[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17119 -> 17122[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17120[label="Succ wy851",fontsize=16,color="green",shape="box"];16706 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16706[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16706 -> 16820[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16706 -> 16821[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16705[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy832",fontsize=16,color="burlywood",shape="triangle"];17409[label="wy832/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17409[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17409 -> 16822[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17410[label="wy832/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17410[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17410 -> 16823[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16766 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16766[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16765[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy834",fontsize=16,color="burlywood",shape="triangle"];17411[label="wy834/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17411[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17411 -> 16824[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17412[label="wy834/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17412[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17412 -> 16825[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16778 -> 16705[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16778[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16778 -> 16826[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16778 -> 16827[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16779 -> 16705[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16779[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16779 -> 16828[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16779 -> 16829[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16780 -> 16765[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16780[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16780 -> 16830[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16780 -> 16831[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16781 -> 16765[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16781[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16781 -> 16832[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16781 -> 16833[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16707 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16707[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16767 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16767[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16767 -> 16834[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16767 -> 16835[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16782 -> 16705[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16782[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16782 -> 16836[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16782 -> 16837[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16783 -> 16705[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16783[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16783 -> 16838[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16783 -> 16839[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16784 -> 16765[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16784[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16784 -> 16840[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16784 -> 16841[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16785 -> 16765[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16785[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16785 -> 16842[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16785 -> 16843[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 4806[label="primQuotInt (Pos wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4806 -> 5031[label="",style="solid", color="black", weight=3]; 291.74/213.01 4807[label="primQuotInt (Pos wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4807 -> 5032[label="",style="solid", color="black", weight=3]; 291.74/213.01 4808[label="primQuotInt (Pos wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4808 -> 5033[label="",style="solid", color="black", weight=3]; 291.74/213.01 4809[label="primQuotInt (Pos wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4809 -> 5034[label="",style="solid", color="black", weight=3]; 291.74/213.01 4810[label="primQuotInt (Neg wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4810 -> 5035[label="",style="solid", color="black", weight=3]; 291.74/213.01 4811[label="primQuotInt (Neg wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4811 -> 5036[label="",style="solid", color="black", weight=3]; 291.74/213.01 4812[label="primQuotInt (Neg wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4812 -> 5037[label="",style="solid", color="black", weight=3]; 291.74/213.01 4813[label="primQuotInt (Neg wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4813 -> 5038[label="",style="solid", color="black", weight=3]; 291.74/213.01 16222 -> 10560[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16222[label="not (esEsOrdering (primCmpNat wy20000 wy439000) GT)",fontsize=16,color="magenta"];16222 -> 16305[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16222 -> 16306[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16223 -> 7351[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16223[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];16224 -> 7356[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16224[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];16225 -> 7425[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16225[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16786[label="Succ wy73300",fontsize=16,color="green",shape="box"];16787[label="Zero",fontsize=16,color="green",shape="box"];16788 -> 16844[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16788[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy821)))",fontsize=16,color="magenta"];16788 -> 16845[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16789[label="Nil",fontsize=16,color="green",shape="box"];16790 -> 16846[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16790[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy823)))",fontsize=16,color="magenta"];16790 -> 16847[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16791[label="Nil",fontsize=16,color="green",shape="box"];16793 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16793[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16793 -> 16848[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16793 -> 16849[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16792[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy835",fontsize=16,color="burlywood",shape="triangle"];17413[label="wy835/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17413[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17413 -> 16850[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17414[label="wy835/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17414[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17414 -> 16851[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16800 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16800[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16799[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy836",fontsize=16,color="burlywood",shape="triangle"];17415[label="wy836/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17415[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17415 -> 16852[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17416[label="wy836/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17416[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17416 -> 16853[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 16806 -> 16792[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16806[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16806 -> 16854[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16806 -> 16855[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16807 -> 16792[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16807[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16807 -> 16856[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16807 -> 16857[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16808 -> 16799[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16808[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16808 -> 16858[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16808 -> 16859[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16809 -> 16799[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16809[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16809 -> 16860[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16809 -> 16861[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16794 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16794[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16801 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16801[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16801 -> 16862[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16801 -> 16863[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16810 -> 16792[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16810[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16810 -> 16864[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16810 -> 16865[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16811 -> 16792[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16811[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16811 -> 16866[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16811 -> 16867[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16812 -> 16799[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16812[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16812 -> 16868[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16812 -> 16869[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16813 -> 16799[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16813[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16813 -> 16870[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16813 -> 16871[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16814 -> 16872[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16814[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy829)))",fontsize=16,color="magenta"];16814 -> 16873[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16815[label="Nil",fontsize=16,color="green",shape="box"];16816 -> 16874[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16816[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy831)))",fontsize=16,color="magenta"];16816 -> 16875[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16817[label="Nil",fontsize=16,color="green",shape="box"];17121[label="Succ wy851",fontsize=16,color="green",shape="box"];17122[label="Succ wy850",fontsize=16,color="green",shape="box"];16820[label="wy7350",fontsize=16,color="green",shape="box"];16821[label="Succ wy73800",fontsize=16,color="green",shape="box"];16822[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16822 -> 16876[label="",style="solid", color="black", weight=3]; 291.74/213.01 16823[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16823 -> 16877[label="",style="solid", color="black", weight=3]; 291.74/213.01 16824[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16824 -> 16878[label="",style="solid", color="black", weight=3]; 291.74/213.01 16825[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16825 -> 16879[label="",style="solid", color="black", weight=3]; 291.74/213.01 16826[label="Succ wy73500",fontsize=16,color="green",shape="box"];16827 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16827[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16827 -> 16880[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16827 -> 16881[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16828[label="Zero",fontsize=16,color="green",shape="box"];16829 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16829[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16830[label="Succ wy73500",fontsize=16,color="green",shape="box"];16831 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16831[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16832[label="Zero",fontsize=16,color="green",shape="box"];16833 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16833[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16834[label="Succ wy73800",fontsize=16,color="green",shape="box"];16835[label="wy7350",fontsize=16,color="green",shape="box"];16836[label="Succ wy73500",fontsize=16,color="green",shape="box"];16837 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16837[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16838[label="Zero",fontsize=16,color="green",shape="box"];16839 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16839[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16840[label="Succ wy73500",fontsize=16,color="green",shape="box"];16841 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16841[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16841 -> 16882[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16841 -> 16883[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16842[label="Zero",fontsize=16,color="green",shape="box"];16843 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16843[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];5031[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5031 -> 5128[label="",style="dashed", color="green", weight=3]; 291.74/213.01 5032[label="error",fontsize=16,color="black",shape="triangle"];5032 -> 5129[label="",style="solid", color="black", weight=3]; 291.74/213.01 5033[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5033 -> 5130[label="",style="dashed", color="green", weight=3]; 291.74/213.01 5034 -> 5032[label="",style="dashed", color="red", weight=0]; 291.74/213.01 5034[label="error",fontsize=16,color="magenta"];5035[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5035 -> 5131[label="",style="dashed", color="green", weight=3]; 291.74/213.01 5036 -> 5032[label="",style="dashed", color="red", weight=0]; 291.74/213.01 5036[label="error",fontsize=16,color="magenta"];5037[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5037 -> 5132[label="",style="dashed", color="green", weight=3]; 291.74/213.01 5038 -> 5032[label="",style="dashed", color="red", weight=0]; 291.74/213.01 5038[label="error",fontsize=16,color="magenta"];16305[label="wy20000",fontsize=16,color="green",shape="box"];16306[label="wy439000",fontsize=16,color="green",shape="box"];16845 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16845[label="psMyInt (msMyInt (Pos Zero) wy732) wy821",fontsize=16,color="magenta"];16845 -> 16884[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16845 -> 16885[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16844[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="triangle"];16844 -> 16886[label="",style="solid", color="black", weight=3]; 291.74/213.01 16847 -> 16277[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16847[label="psMyInt (msMyInt (Pos Zero) wy732) wy823",fontsize=16,color="magenta"];16847 -> 16887[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16847 -> 16888[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16846[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="triangle"];16846 -> 16889[label="",style="solid", color="black", weight=3]; 291.74/213.01 16848[label="wy7530",fontsize=16,color="green",shape="box"];16849[label="Succ wy75600",fontsize=16,color="green",shape="box"];16850[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16850 -> 16890[label="",style="solid", color="black", weight=3]; 291.74/213.01 16851[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16851 -> 16891[label="",style="solid", color="black", weight=3]; 291.74/213.01 16852[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16852 -> 16892[label="",style="solid", color="black", weight=3]; 291.74/213.01 16853[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16853 -> 16893[label="",style="solid", color="black", weight=3]; 291.74/213.01 16854[label="Succ wy75300",fontsize=16,color="green",shape="box"];16855 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16855[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16855 -> 16894[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16855 -> 16895[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16856[label="Zero",fontsize=16,color="green",shape="box"];16857 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16857[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16858 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16858[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16859[label="Succ wy75300",fontsize=16,color="green",shape="box"];16860 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16860[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16861[label="Zero",fontsize=16,color="green",shape="box"];16862[label="Succ wy75600",fontsize=16,color="green",shape="box"];16863[label="wy7530",fontsize=16,color="green",shape="box"];16864[label="Succ wy75300",fontsize=16,color="green",shape="box"];16865 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16865[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16866[label="Zero",fontsize=16,color="green",shape="box"];16867 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16867[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16868 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16868[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16868 -> 16896[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16868 -> 16897[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16869[label="Succ wy75300",fontsize=16,color="green",shape="box"];16870 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16870[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16871[label="Zero",fontsize=16,color="green",shape="box"];16873 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16873[label="psMyInt (msMyInt (Neg Zero) wy750) wy829",fontsize=16,color="magenta"];16873 -> 16898[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16873 -> 16899[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16872[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="triangle"];16872 -> 16900[label="",style="solid", color="black", weight=3]; 291.74/213.01 16875 -> 16457[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16875[label="psMyInt (msMyInt (Neg Zero) wy750) wy831",fontsize=16,color="magenta"];16875 -> 16901[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16875 -> 16902[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16874[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="triangle"];16874 -> 16903[label="",style="solid", color="black", weight=3]; 291.74/213.01 16876[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16876 -> 16911[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16877[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16877 -> 16912[label="",style="solid", color="black", weight=3]; 291.74/213.01 16878[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16878 -> 16913[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16879[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16879 -> 16914[label="",style="solid", color="black", weight=3]; 291.74/213.01 16880[label="Succ wy73500",fontsize=16,color="green",shape="box"];16881[label="Zero",fontsize=16,color="green",shape="box"];16882[label="Zero",fontsize=16,color="green",shape="box"];16883[label="Succ wy73500",fontsize=16,color="green",shape="box"];5129[label="stop MyTrue",fontsize=16,color="black",shape="box"];5129 -> 6027[label="",style="solid", color="black", weight=3]; 291.74/213.01 5130 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.01 5130[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5130 -> 6028[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 5131 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.01 5131[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5131 -> 6029[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 5132 -> 5128[label="",style="dashed", color="red", weight=0]; 291.74/213.01 5132[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5132 -> 6030[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 5132 -> 6031[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16884[label="wy732",fontsize=16,color="green",shape="box"];16885[label="wy821",fontsize=16,color="green",shape="box"];16886[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="box"];16886 -> 16915[label="",style="solid", color="black", weight=3]; 291.74/213.01 16887[label="wy732",fontsize=16,color="green",shape="box"];16888[label="wy823",fontsize=16,color="green",shape="box"];16889[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="box"];16889 -> 16916[label="",style="solid", color="black", weight=3]; 291.74/213.01 16890[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16890 -> 16917[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16891[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16891 -> 16918[label="",style="solid", color="black", weight=3]; 291.74/213.01 16892[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16892 -> 16919[label="",style="dashed", color="green", weight=3]; 291.74/213.01 16893[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16893 -> 16920[label="",style="solid", color="black", weight=3]; 291.74/213.01 16894[label="Succ wy75300",fontsize=16,color="green",shape="box"];16895[label="Zero",fontsize=16,color="green",shape="box"];16896[label="Zero",fontsize=16,color="green",shape="box"];16897[label="Succ wy75300",fontsize=16,color="green",shape="box"];16898[label="wy750",fontsize=16,color="green",shape="box"];16899[label="wy829",fontsize=16,color="green",shape="box"];16900[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="box"];16900 -> 16921[label="",style="solid", color="black", weight=3]; 291.74/213.01 16901[label="wy750",fontsize=16,color="green",shape="box"];16902[label="wy831",fontsize=16,color="green",shape="box"];16903[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="box"];16903 -> 16922[label="",style="solid", color="black", weight=3]; 291.74/213.01 16911[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16911 -> 16927[label="",style="solid", color="black", weight=3]; 291.74/213.01 16912[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16912 -> 16928[label="",style="solid", color="black", weight=3]; 291.74/213.01 16913[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16913 -> 16929[label="",style="solid", color="black", weight=3]; 291.74/213.01 16914[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16914 -> 16930[label="",style="solid", color="black", weight=3]; 291.74/213.01 6027[label="error []",fontsize=16,color="red",shape="box"];6028[label="wy1700",fontsize=16,color="green",shape="box"];6029[label="wy160",fontsize=16,color="green",shape="box"];6030[label="wy160",fontsize=16,color="green",shape="box"];6031[label="wy1700",fontsize=16,color="green",shape="box"];16915 -> 16448[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16915[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837) (flip gtEsMyInt (Pos wy7350) wy821)",fontsize=16,color="magenta"];16915 -> 16931[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16915 -> 16932[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16915 -> 16933[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16916 -> 16459[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16916[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838) (flip gtEsMyInt (Neg wy7350) wy823)",fontsize=16,color="magenta"];16916 -> 16934[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16916 -> 16935[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16916 -> 16936[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16917[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16917 -> 16937[label="",style="solid", color="black", weight=3]; 291.74/213.01 16918[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16918 -> 16938[label="",style="solid", color="black", weight=3]; 291.74/213.01 16919[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16919 -> 16939[label="",style="solid", color="black", weight=3]; 291.74/213.01 16920[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16920 -> 16940[label="",style="solid", color="black", weight=3]; 291.74/213.01 16921 -> 16642[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16921[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839) (flip gtEsMyInt (Pos wy7530) wy829)",fontsize=16,color="magenta"];16921 -> 16941[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16921 -> 16942[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16921 -> 16943[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16922 -> 16650[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16922[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840) (flip gtEsMyInt (Neg wy7530) wy831)",fontsize=16,color="magenta"];16922 -> 16944[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16922 -> 16945[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16922 -> 16946[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16927 -> 16951[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16927[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16927 -> 16952[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16928[label="Nil",fontsize=16,color="green",shape="box"];16929 -> 16953[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16929[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16929 -> 16954[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16930[label="Nil",fontsize=16,color="green",shape="box"];16931[label="wy821",fontsize=16,color="green",shape="box"];16932[label="flip gtEsMyInt (Pos wy7350) wy821",fontsize=16,color="black",shape="triangle"];16932 -> 16955[label="",style="solid", color="black", weight=3]; 291.74/213.01 16933[label="wy837",fontsize=16,color="green",shape="box"];16934[label="wy823",fontsize=16,color="green",shape="box"];16935[label="flip gtEsMyInt (Neg wy7350) wy823",fontsize=16,color="black",shape="triangle"];16935 -> 16956[label="",style="solid", color="black", weight=3]; 291.74/213.01 16936[label="wy838",fontsize=16,color="green",shape="box"];16937 -> 16957[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16937[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16937 -> 16958[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16938[label="Nil",fontsize=16,color="green",shape="box"];16939 -> 16959[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16939[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16939 -> 16960[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16940[label="Nil",fontsize=16,color="green",shape="box"];16941 -> 16932[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16941[label="flip gtEsMyInt (Pos wy7530) wy829",fontsize=16,color="magenta"];16941 -> 16961[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16941 -> 16962[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16942[label="wy829",fontsize=16,color="green",shape="box"];16943[label="wy839",fontsize=16,color="green",shape="box"];16944 -> 16935[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16944[label="flip gtEsMyInt (Neg wy7530) wy831",fontsize=16,color="magenta"];16944 -> 16963[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16944 -> 16964[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16945[label="wy840",fontsize=16,color="green",shape="box"];16946[label="wy831",fontsize=16,color="green",shape="box"];16952 -> 12676[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16952[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16952 -> 16965[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16952 -> 16966[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16952 -> 16967[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16951[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="triangle"];16951 -> 16968[label="",style="solid", color="black", weight=3]; 291.74/213.01 16954 -> 12676[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16954[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16954 -> 16969[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16954 -> 16970[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16954 -> 16971[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16953[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="triangle"];16953 -> 16972[label="",style="solid", color="black", weight=3]; 291.74/213.01 16955[label="gtEsMyInt wy821 (Pos wy7350)",fontsize=16,color="black",shape="box"];16955 -> 16973[label="",style="solid", color="black", weight=3]; 291.74/213.01 16956[label="gtEsMyInt wy823 (Neg wy7350)",fontsize=16,color="black",shape="box"];16956 -> 16974[label="",style="solid", color="black", weight=3]; 291.74/213.01 16958 -> 14894[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16958[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16958 -> 16975[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16958 -> 16976[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16958 -> 16977[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16957[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="triangle"];16957 -> 16978[label="",style="solid", color="black", weight=3]; 291.74/213.01 16960 -> 14894[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16960[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16960 -> 16979[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16960 -> 16980[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16960 -> 16981[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16959[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="triangle"];16959 -> 16982[label="",style="solid", color="black", weight=3]; 291.74/213.01 16961[label="wy7530",fontsize=16,color="green",shape="box"];16962[label="wy829",fontsize=16,color="green",shape="box"];16963[label="wy7530",fontsize=16,color="green",shape="box"];16964[label="wy831",fontsize=16,color="green",shape="box"];16965[label="wy758",fontsize=16,color="green",shape="box"];16966[label="wy732",fontsize=16,color="green",shape="box"];16967[label="wy762",fontsize=16,color="green",shape="box"];16968[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="box"];16968 -> 16991[label="",style="solid", color="black", weight=3]; 291.74/213.01 16969[label="wy758",fontsize=16,color="green",shape="box"];16970[label="wy732",fontsize=16,color="green",shape="box"];16971[label="wy762",fontsize=16,color="green",shape="box"];16972[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="box"];16972 -> 16992[label="",style="solid", color="black", weight=3]; 291.74/213.01 16973[label="fsEsOrdering (compareMyInt wy821 (Pos wy7350)) LT",fontsize=16,color="black",shape="box"];16973 -> 16993[label="",style="solid", color="black", weight=3]; 291.74/213.01 16974[label="fsEsOrdering (compareMyInt wy823 (Neg wy7350)) LT",fontsize=16,color="black",shape="box"];16974 -> 16994[label="",style="solid", color="black", weight=3]; 291.74/213.01 16975[label="wy784",fontsize=16,color="green",shape="box"];16976[label="wy780",fontsize=16,color="green",shape="box"];16977[label="wy750",fontsize=16,color="green",shape="box"];16978[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="box"];16978 -> 16995[label="",style="solid", color="black", weight=3]; 291.74/213.01 16979[label="wy784",fontsize=16,color="green",shape="box"];16980[label="wy780",fontsize=16,color="green",shape="box"];16981[label="wy750",fontsize=16,color="green",shape="box"];16982[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="box"];16982 -> 16996[label="",style="solid", color="black", weight=3]; 291.74/213.01 16991 -> 14839[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16991[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845) (flip gtEsMyInt (Pos wy7350) wy758)",fontsize=16,color="magenta"];16991 -> 17001[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16991 -> 17002[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16991 -> 17003[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16991 -> 17004[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16992 -> 14839[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16992[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846) (flip gtEsMyInt (Neg wy7350) wy758)",fontsize=16,color="magenta"];16992 -> 17005[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16992 -> 17006[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16992 -> 17007[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16992 -> 17008[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16993[label="not (esEsOrdering (compareMyInt wy821 (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];16993 -> 17009[label="",style="solid", color="black", weight=3]; 291.74/213.01 16994[label="not (esEsOrdering (compareMyInt wy823 (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];16994 -> 17010[label="",style="solid", color="black", weight=3]; 291.74/213.01 16995 -> 16244[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16995[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847) (flip gtEsMyInt (Pos wy7530) wy780)",fontsize=16,color="magenta"];16995 -> 17011[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16995 -> 17012[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16995 -> 17013[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16995 -> 17014[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16996 -> 16244[label="",style="dashed", color="red", weight=0]; 291.74/213.01 16996[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848) (flip gtEsMyInt (Neg wy7530) wy780)",fontsize=16,color="magenta"];16996 -> 17015[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16996 -> 17016[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16996 -> 17017[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 16996 -> 17018[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17001[label="wy845",fontsize=16,color="green",shape="box"];17002[label="wy758",fontsize=16,color="green",shape="box"];17003[label="wy758",fontsize=16,color="green",shape="box"];17004[label="Pos wy7350",fontsize=16,color="green",shape="box"];17005[label="wy846",fontsize=16,color="green",shape="box"];17006[label="wy758",fontsize=16,color="green",shape="box"];17007[label="wy758",fontsize=16,color="green",shape="box"];17008[label="Neg wy7350",fontsize=16,color="green",shape="box"];17009[label="not (esEsOrdering (primCmpInt wy821 (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17417[label="wy821/Pos wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17417[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17417 -> 17023[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17418[label="wy821/Neg wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17418[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17418 -> 17024[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17010[label="not (esEsOrdering (primCmpInt wy823 (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17419[label="wy823/Pos wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17419[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17419 -> 17025[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17420[label="wy823/Neg wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17420[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17420 -> 17026[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17011[label="Pos wy7530",fontsize=16,color="green",shape="box"];17012[label="wy780",fontsize=16,color="green",shape="box"];17013[label="wy847",fontsize=16,color="green",shape="box"];17014[label="wy780",fontsize=16,color="green",shape="box"];17015[label="Neg wy7530",fontsize=16,color="green",shape="box"];17016[label="wy780",fontsize=16,color="green",shape="box"];17017[label="wy848",fontsize=16,color="green",shape="box"];17018[label="wy780",fontsize=16,color="green",shape="box"];17023[label="not (esEsOrdering (primCmpInt (Pos wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17421[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17421[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17421 -> 17070[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17422[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17422[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17422 -> 17071[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17024[label="not (esEsOrdering (primCmpInt (Neg wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17423[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17423[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17423 -> 17072[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17424[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17424[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17424 -> 17073[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17025[label="not (esEsOrdering (primCmpInt (Pos wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17425[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17425[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17425 -> 17074[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17426[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17426[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17426 -> 17075[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17026[label="not (esEsOrdering (primCmpInt (Neg wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17427[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17427[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17427 -> 17076[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17428[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17428[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17428 -> 17077[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17070[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17070 -> 17082[label="",style="solid", color="black", weight=3]; 291.74/213.01 17071[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17429[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17429[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17429 -> 17083[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17430[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17430[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17430 -> 17084[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17072[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17072 -> 17085[label="",style="solid", color="black", weight=3]; 291.74/213.01 17073[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17431[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17431[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17431 -> 17086[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17432[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17432[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17432 -> 17087[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17074[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17074 -> 17088[label="",style="solid", color="black", weight=3]; 291.74/213.01 17075[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17433[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17433[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17433 -> 17089[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17434[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17434[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17434 -> 17090[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17076[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17076 -> 17091[label="",style="solid", color="black", weight=3]; 291.74/213.01 17077[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17435[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17435[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17435 -> 17092[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17436[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17436[label="",style="solid", color="burlywood", weight=9]; 291.74/213.01 17436 -> 17093[label="",style="solid", color="burlywood", weight=3]; 291.74/213.01 17082 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17082[label="not (esEsOrdering (primCmpNat (Succ wy82100) wy7350) LT)",fontsize=16,color="magenta"];17082 -> 17098[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17082 -> 17099[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17083[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17083 -> 17100[label="",style="solid", color="black", weight=3]; 291.74/213.01 17084[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17084 -> 17101[label="",style="solid", color="black", weight=3]; 291.74/213.01 17085 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17085[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17086[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17086 -> 17102[label="",style="solid", color="black", weight=3]; 291.74/213.01 17087[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17087 -> 17103[label="",style="solid", color="black", weight=3]; 291.74/213.01 17088 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17088[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17089[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17089 -> 17104[label="",style="solid", color="black", weight=3]; 291.74/213.01 17090[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17090 -> 17105[label="",style="solid", color="black", weight=3]; 291.74/213.01 17091 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17091[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy82300)) LT)",fontsize=16,color="magenta"];17091 -> 17106[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17091 -> 17107[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17092[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17092 -> 17108[label="",style="solid", color="black", weight=3]; 291.74/213.01 17093[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17093 -> 17109[label="",style="solid", color="black", weight=3]; 291.74/213.01 17098[label="wy7350",fontsize=16,color="green",shape="box"];17099[label="Succ wy82100",fontsize=16,color="green",shape="box"];17100 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17100[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];17100 -> 17114[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17100 -> 17115[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17101 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17101[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17102 -> 14929[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17102[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17103 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17103[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17104 -> 13404[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17104[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17105 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17105[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17106[label="Succ wy82300",fontsize=16,color="green",shape="box"];17107[label="wy7350",fontsize=16,color="green",shape="box"];17108 -> 14963[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17108[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];17108 -> 17116[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17108 -> 17117[label="",style="dashed", color="magenta", weight=3]; 291.74/213.01 17109 -> 14908[label="",style="dashed", color="red", weight=0]; 291.74/213.01 17109[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17114[label="Succ wy73500",fontsize=16,color="green",shape="box"];17115[label="Zero",fontsize=16,color="green",shape="box"];17116[label="Zero",fontsize=16,color="green",shape="box"];17117[label="Succ wy73500",fontsize=16,color="green",shape="box"];} 291.74/213.01 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (6) 291.74/213.01 Complex Obligation (AND) 291.74/213.01 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (7) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) 291.74/213.01 new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 291.74/213.01 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.74/213.01 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.74/213.01 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.01 new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) 291.74/213.01 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.01 new_not4 -> MyFalse 291.74/213.01 new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 291.74/213.01 new_not3 -> new_not4 291.74/213.01 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.01 new_not5 -> MyTrue 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.01 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.01 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.74/213.01 new_not1 -> new_not5 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.01 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.01 new_not2 -> new_not5 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.01 new_not0(Main.Zero, Main.Zero) -> new_not2 291.74/213.01 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) 291.74/213.01 new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.74/213.01 291.74/213.01 The set Q consists of the following terms: 291.74/213.01 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.01 new_flip(Main.Zero, Main.Neg(Main.Zero)) 291.74/213.01 new_psMyInt0(Main.Neg(x0), x1) 291.74/213.01 new_not2 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_psMyInt0(Main.Pos(x0), x1) 291.74/213.01 new_flip(Main.Zero, Main.Pos(Main.Zero)) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.01 new_flip(x0, Main.Pos(Main.Succ(x1))) 291.74/213.01 new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) 291.74/213.01 new_not3 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_not0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_not0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_not4 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_not1 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.01 new_flip(x0, Main.Neg(Main.Succ(x1))) 291.74/213.01 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.01 new_not0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.01 new_not5 291.74/213.01 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) 291.74/213.01 291.74/213.01 We have to consider all minimal (P,Q,R)-chains. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (8) MNOCProof (EQUIVALENT) 291.74/213.01 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (9) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) 291.74/213.01 new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 291.74/213.01 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.74/213.01 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.74/213.01 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.01 new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) 291.74/213.01 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.01 new_not4 -> MyFalse 291.74/213.01 new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 291.74/213.01 new_not3 -> new_not4 291.74/213.01 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.01 new_not5 -> MyTrue 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.01 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.01 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.74/213.01 new_not1 -> new_not5 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.01 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.01 new_not2 -> new_not5 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.01 new_not0(Main.Zero, Main.Zero) -> new_not2 291.74/213.01 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) 291.74/213.01 new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.74/213.01 291.74/213.01 Q is empty. 291.74/213.01 We have to consider all (P,Q,R)-chains. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (10) InductionCalculusProof (EQUIVALENT) 291.74/213.01 Note that final constraints are written in bold face. 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 For Pair new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) the following chains were created: 291.74/213.01 *We consider the chain new_takeWhile2(x4, x5, x6, x7) -> new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5)), new_takeWhile12(x8, x9, x10, x11, MyTrue) -> new_takeWhile2(x8, x11, x10, new_psMyInt0(x10, x11)) which results in the following constraint: 291.74/213.01 291.74/213.01 (1) (new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5))=new_takeWhile12(x8, x9, x10, x11, MyTrue) ==> new_takeWhile2(x4, x5, x6, x7)_>=_new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (2) (new_flip(x4, x5)=MyTrue ==> new_takeWhile2(x4, x5, x6, x7)_>=_new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip(x4, x5)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (3) (new_not1=MyTrue ==> new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 (4) (new_not2=MyTrue ==> new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 (5) (new_not0(x26, Main.Succ(x25))=MyTrue ==> new_takeWhile2(x26, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(x26, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(x26, Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 (6) (new_not1=MyTrue ==> new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.74/213.01 291.74/213.01 (7) (new_not0(Main.Succ(x29), Main.Zero)=MyTrue ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (8) (new_not2=MyTrue ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (9) (new_not5=MyTrue ==> new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (10) (new_not5=MyTrue ==> new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (5) using rule (VII) which results in the following new constraint: 291.74/213.01 291.74/213.01 (11) (Main.Succ(x25)=x30 & new_not0(x26, x30)=MyTrue ==> new_takeWhile2(x26, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(x26, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(x26, Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (12) (new_not5=MyTrue ==> new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (7) using rule (VII) which results in the following new constraint: 291.74/213.01 291.74/213.01 (13) (Main.Succ(x29)=x38 & Main.Zero=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (14) (new_not5=MyTrue ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (15) (new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (16) (new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not0(x26, x30)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (17) (new_not1=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile2(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Succ(x31), Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 (18) (new_not3=MyTrue & Main.Succ(x25)=Main.Succ(x32) ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 (19) (new_not0(x34, x33)=MyTrue & Main.Succ(x25)=Main.Succ(x33) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x33 ==> new_takeWhile2(x34, Main.Neg(Main.Succ(x35)), x36, x37)_>=_new_takeWhile12(x34, Main.Neg(Main.Succ(x35)), x36, x37, new_flip(x34, Main.Neg(Main.Succ(x35))))) ==> new_takeWhile2(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 (20) (new_not2=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We solved constraint (17) using rules (I), (II).We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (21) (new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (19) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (22) (new_takeWhile2(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7)_>=_new_takeWhile12(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We solved constraint (20) using rules (I), (II).We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (23) (new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (24) (new_not1=MyTrue & Main.Succ(x29)=Main.Succ(x40) & Main.Zero=Main.Zero ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (25) (new_not3=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Succ(x41) ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (26) (new_not0(x43, x42)=MyTrue & Main.Succ(x29)=Main.Succ(x43) & Main.Zero=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Succ(x44)=x43 & Main.Zero=x42 ==> new_takeWhile2(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46)_>=_new_takeWhile12(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46, new_flip(Main.Succ(x44), Main.Neg(Main.Zero)))) ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (27) (new_not2=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Zero ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (24) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (28) (new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We solved constraint (25) using rules (I), (II).We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (29) (new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 For Pair new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) the following chains were created: 291.74/213.01 *We consider the chain new_takeWhile12(x12, x13, x14, x15, MyTrue) -> new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15)), new_takeWhile2(x16, x17, x18, x19) -> new_takeWhile12(x16, x17, x18, x19, new_flip(x16, x17)) which results in the following constraint: 291.74/213.01 291.74/213.01 (1) (new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))=new_takeWhile2(x16, x17, x18, x19) ==> new_takeWhile12(x12, x13, x14, x15, MyTrue)_>=_new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (2) (new_takeWhile12(x12, x13, x14, x15, MyTrue)_>=_new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 To summarize, we get the following constraints P__>=_ for the following pairs. 291.74/213.01 291.74/213.01 *new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) 291.74/213.01 291.74/213.01 *(new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile2(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7)_>=_new_takeWhile12(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 *new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) 291.74/213.01 291.74/213.01 *(new_takeWhile12(x12, x13, x14, x15, MyTrue)_>=_new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 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. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (11) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) 291.74/213.01 new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 291.74/213.01 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.74/213.01 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.74/213.01 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.01 new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) 291.74/213.01 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.01 new_not4 -> MyFalse 291.74/213.01 new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 291.74/213.01 new_not3 -> new_not4 291.74/213.01 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.01 new_not5 -> MyTrue 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.01 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.01 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.74/213.01 new_not1 -> new_not5 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.01 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.01 new_not2 -> new_not5 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.01 new_not0(Main.Zero, Main.Zero) -> new_not2 291.74/213.01 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) 291.74/213.01 new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.74/213.01 291.74/213.01 The set Q consists of the following terms: 291.74/213.01 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.01 new_flip(Main.Zero, Main.Neg(Main.Zero)) 291.74/213.01 new_psMyInt0(Main.Neg(x0), x1) 291.74/213.01 new_not2 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_psMyInt0(Main.Pos(x0), x1) 291.74/213.01 new_flip(Main.Zero, Main.Pos(Main.Zero)) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.01 new_flip(x0, Main.Pos(Main.Succ(x1))) 291.74/213.01 new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) 291.74/213.01 new_not3 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_not0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_not0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_not4 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_not1 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.01 new_flip(x0, Main.Neg(Main.Succ(x1))) 291.74/213.01 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.01 new_not0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.01 new_not5 291.74/213.01 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) 291.74/213.01 291.74/213.01 We have to consider all minimal (P,Q,R)-chains. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (12) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.01 new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.01 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.01 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_not10 -> new_not5 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.01 new_not11 -> new_not5 291.74/213.01 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.01 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.01 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.01 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.01 new_not4 -> MyFalse 291.74/213.01 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.01 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.01 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.01 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.01 new_not5 -> MyTrue 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.01 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.01 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.01 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.01 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.01 new_not8 -> new_not4 291.74/213.01 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 291.74/213.01 The set Q consists of the following terms: 291.74/213.01 291.74/213.01 new_not10 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.01 new_not8 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.01 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.01 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_not7(x0, Main.Zero) 291.74/213.01 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.01 new_not12(Main.Zero, Main.Zero) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.01 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.01 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_not7(x0, Main.Succ(x1)) 291.74/213.01 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.01 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_not9(Main.Zero, x0) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.01 new_not4 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.01 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.01 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.01 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.01 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.01 new_not11 291.74/213.01 new_not5 291.74/213.01 new_not9(Main.Succ(x0), x1) 291.74/213.01 291.74/213.01 We have to consider all minimal (P,Q,R)-chains. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (13) MNOCProof (EQUIVALENT) 291.74/213.01 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (14) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.01 new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.01 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.01 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_not10 -> new_not5 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.01 new_not11 -> new_not5 291.74/213.01 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.01 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.01 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.01 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.01 new_not4 -> MyFalse 291.74/213.01 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.01 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.01 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.01 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.01 new_not5 -> MyTrue 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.01 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.01 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.01 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.01 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.01 new_not8 -> new_not4 291.74/213.01 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 291.74/213.01 Q is empty. 291.74/213.01 We have to consider all (P,Q,R)-chains. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (15) InductionCalculusProof (EQUIVALENT) 291.74/213.01 Note that final constraints are written in bold face. 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 For Pair new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: 291.74/213.01 *We consider the chain new_takeWhile110(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile8(x10, x11, x12, x13, x14) -> new_takeWhile110(x10, x11, x12, x13, x14, new_flip1(x10, x11)) which results in the following constraint: 291.74/213.01 291.74/213.01 (1) (new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile8(x10, x11, x12, x13, x14) ==> new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (2) (new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 For Pair new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) the following chains were created: 291.74/213.01 *We consider the chain new_takeWhile8(x15, x16, x17, x18, x19) -> new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16)), new_takeWhile110(x20, x21, x22, x23, x24, MyTrue) -> new_takeWhile8(x20, x24, x22, x23, new_psMyInt(x22, x23, x24)) which results in the following constraint: 291.74/213.01 291.74/213.01 (1) (new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16))=new_takeWhile110(x20, x21, x22, x23, x24, MyTrue) ==> new_takeWhile8(x15, x16, x17, x18, x19)_>=_new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (2) (new_flip1(x15, x16)=MyTrue ==> new_takeWhile8(x15, x16, x17, x18, x19)_>=_new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x15, x16)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (3) (new_not10=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (4) (new_not10=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 (5) (new_not10=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (6) (new_not8=MyTrue ==> new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.01 291.74/213.01 (7) (new_not8=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 (8) (new_not11=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (9) (new_not7(x34, Main.Zero)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (10) (new_not11=MyTrue ==> new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.01 291.74/213.01 (11) (new_not7(x37, x38)=MyTrue ==> new_takeWhile8(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x17, x18, x19, new_flip1(Main.Pos(x38), Main.Pos(Main.Succ(x37))))) 291.74/213.01 291.74/213.01 (12) (new_not9(Main.Zero, x39)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 (13) (new_not9(x41, x40)=MyTrue ==> new_takeWhile8(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x17, x18, x19, new_flip1(Main.Neg(x41), Main.Neg(Main.Succ(x40))))) 291.74/213.01 291.74/213.01 (14) (new_not10=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (15) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (16) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (17) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (18) (new_not4=MyTrue ==> new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (19) (new_not4=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (20) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (9) using rule (VII) which results in the following new constraint: 291.74/213.01 291.74/213.01 (21) (Main.Zero=x42 & new_not7(x34, x42)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (22) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not7(x37, x38)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (23) (new_not12(x47, x46)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) 291.74/213.01 291.74/213.01 (24) (new_not8=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (12) using rule (VII) which results in the following new constraint: 291.74/213.01 291.74/213.01 (25) (Main.Zero=x49 & new_not9(x49, x39)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not9(x41, x40)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (26) (new_not11=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) 291.74/213.01 291.74/213.01 (27) (new_not12(x55, x54)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.01 291.74/213.01 (28) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (15) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (29) (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (16) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (30) (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (17) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (31) (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (18) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (32) (new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (19) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (33) (new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (20) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (34) (new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (21) using rule (V) (with possible (I) afterwards) using induction on new_not7(x34, x42)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (35) (new_not12(x44, x43)=MyTrue & Main.Zero=Main.Succ(x43) ==> new_takeWhile8(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 (36) (new_not8=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile8(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We solved constraint (35) using rules (I), (II).We simplified constraint (36) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (37) (new_takeWhile8(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (22) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (38) (new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (23) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (39) (new_takeWhile8(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (24) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (40) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on new_not9(x49, x39)=MyTrue which results in the following new constraints: 291.74/213.01 291.74/213.01 (41) (new_not11=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile8(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 (42) (new_not12(x52, x51)=MyTrue & Main.Zero=Main.Succ(x52) ==> new_takeWhile8(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (41) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (43) (new_takeWhile8(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We solved constraint (42) using rules (I), (II).We simplified constraint (26) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (44) (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (27) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (45) (new_takeWhile8(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 We simplified constraint (28) using rule (IV) which results in the following new constraint: 291.74/213.01 291.74/213.01 (46) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 To summarize, we get the following constraints P__>=_ for the following pairs. 291.74/213.01 291.74/213.01 *new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.01 291.74/213.01 *(new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 *new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) 291.74/213.01 291.74/213.01 291.74/213.01 *(new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 291.74/213.01 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. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (16) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.01 new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.01 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.01 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_not10 -> new_not5 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.01 new_not11 -> new_not5 291.74/213.01 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.01 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.01 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.01 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.01 new_not4 -> MyFalse 291.74/213.01 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.01 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.01 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.01 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.01 new_not5 -> MyTrue 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.01 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.01 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.01 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.01 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.01 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.01 new_not8 -> new_not4 291.74/213.01 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 291.74/213.01 The set Q consists of the following terms: 291.74/213.01 291.74/213.01 new_not10 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.01 new_not8 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.01 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.01 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.01 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_not7(x0, Main.Zero) 291.74/213.01 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.01 new_not12(Main.Zero, Main.Zero) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.01 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.01 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_not7(x0, Main.Succ(x1)) 291.74/213.01 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.01 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.01 new_not9(Main.Zero, x0) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.01 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.01 new_not4 291.74/213.01 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.01 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.01 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.01 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.01 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.01 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.01 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.01 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.01 new_not11 291.74/213.01 new_not5 291.74/213.01 new_not9(Main.Succ(x0), x1) 291.74/213.01 291.74/213.01 We have to consider all minimal (P,Q,R)-chains. 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (17) TransformationProof (EQUIVALENT) 291.74/213.01 By narrowing [LPAR04] the rule new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.01 291.74/213.01 (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.01 (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.01 (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.01 (new_takeWhile8(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8)) 291.74/213.01 (new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8)) 291.74/213.01 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11)) 291.74/213.01 (new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)),new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero))) 291.74/213.01 (new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11)) 291.74/213.01 (new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)),new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0))) 291.74/213.01 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0))) 291.74/213.01 (new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)),new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1))) 291.74/213.01 (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.01 291.74/213.01 291.74/213.01 ---------------------------------------- 291.74/213.01 291.74/213.01 (18) 291.74/213.01 Obligation: 291.74/213.01 Q DP problem: 291.74/213.01 The TRS P consists of the following rules: 291.74/213.01 291.74/213.01 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.01 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.01 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.01 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.01 new_takeWhile8(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8) 291.74/213.01 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8) 291.74/213.01 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.01 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)) 291.74/213.01 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.01 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.01 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.01 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.01 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.01 291.74/213.01 The TRS R consists of the following rules: 291.74/213.01 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.01 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.01 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.01 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.01 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.01 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.01 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.01 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.01 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.01 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.01 new_not10 -> new_not5 291.74/213.01 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.02 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (19) DependencyGraphProof (EQUIVALENT) 291.74/213.02 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (20) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.02 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (21) UsableRulesProof (EQUIVALENT) 291.74/213.02 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. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (22) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (23) QReductionProof (EQUIVALENT) 291.74/213.02 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.74/213.02 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.02 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.02 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (24) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (25) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (26) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (27) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (28) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (29) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (30) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (31) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (32) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (33) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (34) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (35) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (36) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (37) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (38) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (39) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (40) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (41) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (42) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (43) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (44) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (45) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (46) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (47) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (48) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (49) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (50) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (51) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (52) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (53) TransformationProof (EQUIVALENT) 291.74/213.02 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (54) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (55) TransformationProof (EQUIVALENT) 291.74/213.02 By narrowing [LPAR04] the rule new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.02 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1))) 291.74/213.02 (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8)) 291.74/213.02 291.74/213.02 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (56) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.02 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.02 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.02 new_not11 291.74/213.02 new_not5 291.74/213.02 new_not9(Main.Succ(x0), x1) 291.74/213.02 291.74/213.02 We have to consider all minimal (P,Q,R)-chains. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (57) DependencyGraphProof (EQUIVALENT) 291.74/213.02 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.74/213.02 ---------------------------------------- 291.74/213.02 291.74/213.02 (58) 291.74/213.02 Obligation: 291.74/213.02 Q DP problem: 291.74/213.02 The TRS P consists of the following rules: 291.74/213.02 291.74/213.02 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.02 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.02 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.02 291.74/213.02 The TRS R consists of the following rules: 291.74/213.02 291.74/213.02 new_not10 -> new_not5 291.74/213.02 new_not5 -> MyTrue 291.74/213.02 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.02 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.02 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.02 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.02 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.02 new_not8 -> new_not4 291.74/213.02 new_not4 -> MyFalse 291.74/213.02 new_not11 -> new_not5 291.74/213.02 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.02 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.02 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.02 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.02 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.02 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.02 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.02 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.02 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.02 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.02 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.02 291.74/213.02 The set Q consists of the following terms: 291.74/213.02 291.74/213.02 new_not10 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.02 new_not8 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.02 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not7(x0, Main.Zero) 291.74/213.02 new_not12(Main.Zero, Main.Zero) 291.74/213.02 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.02 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.02 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_not7(x0, Main.Succ(x1)) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.02 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.02 new_not9(Main.Zero, x0) 291.74/213.02 new_not4 291.74/213.02 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.02 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.02 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.02 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 new_not9(Main.Succ(x0), x1) 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (59) UsableRulesProof (EQUIVALENT) 291.74/213.03 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. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (60) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.03 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not7(x0, Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_not7(x0, Main.Succ(x1)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not9(Main.Zero, x0) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 new_not9(Main.Succ(x0), x1) 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (61) QReductionProof (EQUIVALENT) 291.74/213.03 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.74/213.03 291.74/213.03 new_not7(x0, Main.Zero) 291.74/213.03 new_not7(x0, Main.Succ(x1)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (62) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.03 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not9(Main.Zero, x0) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 new_not9(Main.Succ(x0), x1) 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (63) TransformationProof (EQUIVALENT) 291.74/213.03 By narrowing [LPAR04] the rule new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11)) 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1))) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (64) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.03 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not9(Main.Zero, x0) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 new_not9(Main.Succ(x0), x1) 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (65) UsableRulesProof (EQUIVALENT) 291.74/213.03 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. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (66) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not9(Main.Zero, x0) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 new_not9(Main.Succ(x0), x1) 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (67) QReductionProof (EQUIVALENT) 291.74/213.03 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.74/213.03 291.74/213.03 new_not9(Main.Zero, x0) 291.74/213.03 new_not9(Main.Succ(x0), x1) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (68) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (69) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (70) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (71) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (72) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (73) TransformationProof (EQUIVALENT) 291.74/213.03 By narrowing [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11)) 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1))) 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (74) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (75) DependencyGraphProof (EQUIVALENT) 291.74/213.03 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (76) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (77) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (78) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (79) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (80) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (81) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (82) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (83) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (84) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (85) TransformationProof (EQUIVALENT) 291.74/213.03 By narrowing [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11)) 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1))) 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (86) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (87) DependencyGraphProof (EQUIVALENT) 291.74/213.03 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (88) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (89) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (90) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (91) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (92) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (93) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (94) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (95) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (96) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (97) TransformationProof (EQUIVALENT) 291.74/213.03 By narrowing [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11)) 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1))) 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (98) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (99) DependencyGraphProof (EQUIVALENT) 291.74/213.03 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (100) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.03 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.03 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.03 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.03 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.03 291.74/213.03 The set Q consists of the following terms: 291.74/213.03 291.74/213.03 new_not10 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.03 new_not8 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.03 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Zero, Main.Zero) 291.74/213.03 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.03 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.03 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.03 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.03 new_not4 291.74/213.03 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.03 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.03 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.03 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.03 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.03 new_not11 291.74/213.03 new_not5 291.74/213.03 291.74/213.03 We have to consider all minimal (P,Q,R)-chains. 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (101) TransformationProof (EQUIVALENT) 291.74/213.03 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.03 291.74/213.03 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.74/213.03 291.74/213.03 291.74/213.03 ---------------------------------------- 291.74/213.03 291.74/213.03 (102) 291.74/213.03 Obligation: 291.74/213.03 Q DP problem: 291.74/213.03 The TRS P consists of the following rules: 291.74/213.03 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.03 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.74/213.03 291.74/213.03 The TRS R consists of the following rules: 291.74/213.03 291.74/213.03 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.03 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.03 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.03 new_not8 -> new_not4 291.74/213.03 new_not4 -> MyFalse 291.74/213.03 new_not11 -> new_not5 291.74/213.03 new_not5 -> MyTrue 291.74/213.03 new_not10 -> new_not5 291.74/213.03 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.03 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.03 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.03 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.03 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.03 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (103) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (104) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (105) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (106) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (107) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (108) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (109) TransformationProof (EQUIVALENT) 291.74/213.04 By narrowing [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11)) 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1))) 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (110) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (111) DependencyGraphProof (EQUIVALENT) 291.74/213.04 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (112) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (113) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (114) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (115) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (116) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (117) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (118) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (119) TransformationProof (EQUIVALENT) 291.74/213.04 By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.04 291.74/213.04 (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (120) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (121) QDPOrderProof (EQUIVALENT) 291.74/213.04 We use the reduction pair processor [LPAR04,JAR06]. 291.74/213.04 291.74/213.04 291.74/213.04 The following pairs can be oriented strictly and are deleted. 291.74/213.04 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 The remaining pairs can at least be oriented weakly. 291.74/213.04 Used ordering: Polynomial interpretation [POLO]: 291.74/213.04 291.74/213.04 POL(Main.Neg(x_1)) = x_1 291.74/213.04 POL(Main.Pos(x_1)) = 0 291.74/213.04 POL(Main.Succ(x_1)) = 0 291.74/213.04 POL(Main.Zero) = 1 291.74/213.04 POL(MyFalse) = 0 291.74/213.04 POL(MyTrue) = 0 291.74/213.04 POL(new_not10) = 0 291.74/213.04 POL(new_not11) = 0 291.74/213.04 POL(new_not12(x_1, x_2)) = 0 291.74/213.04 POL(new_not4) = 0 291.74/213.04 POL(new_not5) = 0 291.74/213.04 POL(new_not8) = 0 291.74/213.04 POL(new_primMinusNat0(x_1, x_2)) = 0 291.74/213.04 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 291.74/213.04 POL(new_primPlusInt1(x_1, x_2)) = 0 291.74/213.04 POL(new_primPlusInt2(x_1, x_2)) = x_1 291.74/213.04 POL(new_primPlusNat0(x_1, x_2)) = x_1 291.74/213.04 POL(new_psMyInt(x_1, x_2, x_3)) = 0 291.74/213.04 POL(new_takeWhile110(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 291.74/213.04 POL(new_takeWhile8(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 291.74/213.04 291.74/213.04 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.74/213.04 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (122) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (123) MNOCProof (EQUIVALENT) 291.74/213.04 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (124) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 Q is empty. 291.74/213.04 We have to consider all (P,Q,R)-chains. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (125) InductionCalculusProof (EQUIVALENT) 291.74/213.04 Note that final constraints are written in bold face. 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile110(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) ==> new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt(x7, x8, Main.Pos(Main.Zero)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x13, x14, x15, x16, x17, MyTrue) -> new_takeWhile8(x13, x17, x15, x16, new_psMyInt(x15, x16, x17)), new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) -> new_takeWhile110(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x13, x17, x15, x16, new_psMyInt(x15, x16, x17))=new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) ==> new_takeWhile110(x13, x14, x15, x16, x17, MyTrue)_>=_new_takeWhile8(x13, x17, x15, x16, new_psMyInt(x15, x16, x17))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt(x15, x16, Main.Neg(Main.Succ(x19))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x23, x24, x25, x26, x27, MyTrue) -> new_takeWhile8(x23, x27, x25, x26, new_psMyInt(x25, x26, x27)), new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x23, x27, x25, x26, new_psMyInt(x25, x26, x27))=new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) ==> new_takeWhile110(x23, x24, x25, x26, x27, MyTrue)_>=_new_takeWhile8(x23, x27, x25, x26, new_psMyInt(x25, x26, x27))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt(x25, x26, Main.Pos(Main.Zero)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x31, x32, x33, x34, x35, MyTrue) -> new_takeWhile8(x31, x35, x33, x34, new_psMyInt(x33, x34, x35)), new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) -> new_takeWhile110(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x31, x35, x33, x34, new_psMyInt(x33, x34, x35))=new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) ==> new_takeWhile110(x31, x32, x33, x34, x35, MyTrue)_>=_new_takeWhile8(x31, x35, x33, x34, new_psMyInt(x33, x34, x35))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt(x33, x34, Main.Pos(Main.Zero)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x40, x41, x42, x43, x44, MyTrue) -> new_takeWhile8(x40, x44, x42, x43, new_psMyInt(x42, x43, x44)), new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x40, x44, x42, x43, new_psMyInt(x42, x43, x44))=new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) ==> new_takeWhile110(x40, x41, x42, x43, x44, MyTrue)_>=_new_takeWhile8(x40, x44, x42, x43, new_psMyInt(x42, x43, x44))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt(x42, x43, Main.Neg(Main.Succ(x45))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x49, x50, x51, x52, x53, MyTrue) -> new_takeWhile8(x49, x53, x51, x52, new_psMyInt(x51, x52, x53)), new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x49, x53, x51, x52, new_psMyInt(x51, x52, x53))=new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) ==> new_takeWhile110(x49, x50, x51, x52, x53, MyTrue)_>=_new_takeWhile8(x49, x53, x51, x52, new_psMyInt(x51, x52, x53))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x57, x58, x59, x60, x61, MyTrue) -> new_takeWhile8(x57, x61, x59, x60, new_psMyInt(x59, x60, x61)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x57, x61, x59, x60, new_psMyInt(x59, x60, x61))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) ==> new_takeWhile110(x57, x58, x59, x60, x61, MyTrue)_>=_new_takeWhile8(x57, x61, x59, x60, new_psMyInt(x59, x60, x61))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x66, x67, x68, x69, x70, MyTrue) -> new_takeWhile8(x66, x70, x68, x69, new_psMyInt(x68, x69, x70)), new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x66, x70, x68, x69, new_psMyInt(x68, x69, x70))=new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) ==> new_takeWhile110(x66, x67, x68, x69, x70, MyTrue)_>=_new_takeWhile8(x66, x70, x68, x69, new_psMyInt(x68, x69, x70))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x74, x75, x76, x77, x78, MyTrue) -> new_takeWhile8(x74, x78, x76, x77, new_psMyInt(x76, x77, x78)), new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x74, x78, x76, x77, new_psMyInt(x76, x77, x78))=new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) ==> new_takeWhile110(x74, x75, x76, x77, x78, MyTrue)_>=_new_takeWhile8(x74, x78, x76, x77, new_psMyInt(x76, x77, x78))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x83, x84, x85, x86, x87, MyTrue) -> new_takeWhile8(x83, x87, x85, x86, new_psMyInt(x85, x86, x87)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92, new_not12(x89, x88)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x83, x87, x85, x86, new_psMyInt(x85, x86, x87))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) ==> new_takeWhile110(x83, x84, x85, x86, x87, MyTrue)_>=_new_takeWhile8(x83, x87, x85, x86, new_psMyInt(x85, x86, x87))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x93, x94, x95, x96, x97, MyTrue) -> new_takeWhile8(x93, x97, x95, x96, new_psMyInt(x95, x96, x97)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x93, x97, x95, x96, new_psMyInt(x95, x96, x97))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) ==> new_takeWhile110(x93, x94, x95, x96, x97, MyTrue)_>=_new_takeWhile8(x93, x97, x95, x96, new_psMyInt(x95, x96, x97))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x101, x102, x103, x104, x105, MyTrue) -> new_takeWhile8(x101, x105, x103, x104, new_psMyInt(x103, x104, x105)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x101, x105, x103, x104, new_psMyInt(x103, x104, x105))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) ==> new_takeWhile110(x101, x102, x103, x104, x105, MyTrue)_>=_new_takeWhile8(x101, x105, x103, x104, new_psMyInt(x103, x104, x105))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x110, x111, x112, x113, x114, MyTrue) -> new_takeWhile8(x110, x114, x112, x113, new_psMyInt(x112, x113, x114)), new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119, new_not12(x115, x116)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x110, x114, x112, x113, new_psMyInt(x112, x113, x114))=new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) ==> new_takeWhile110(x110, x111, x112, x113, x114, MyTrue)_>=_new_takeWhile8(x110, x114, x112, x113, new_psMyInt(x112, x113, x114))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x120, x121, x122, x123, x124, MyTrue) -> new_takeWhile8(x120, x124, x122, x123, new_psMyInt(x122, x123, x124)), new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x120, x124, x122, x123, new_psMyInt(x122, x123, x124))=new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) ==> new_takeWhile110(x120, x121, x122, x123, x124, MyTrue)_>=_new_takeWhile8(x120, x124, x122, x123, new_psMyInt(x122, x123, x124))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *We consider the chain new_takeWhile110(x128, x129, x130, x131, x132, MyTrue) -> new_takeWhile8(x128, x132, x130, x131, new_psMyInt(x130, x131, x132)), new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136, MyTrue) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile8(x128, x132, x130, x131, new_psMyInt(x130, x131, x132))=new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) ==> new_takeWhile110(x128, x129, x130, x131, x132, MyTrue)_>=_new_takeWhile8(x128, x132, x130, x131, new_psMyInt(x130, x131, x132))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue), new_takeWhile110(x140, x141, x142, x143, x144, MyTrue) -> new_takeWhile8(x140, x144, x142, x143, new_psMyInt(x142, x143, x144)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)=new_takeWhile110(x140, x141, x142, x143, x144, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194) -> new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue), new_takeWhile110(x195, x196, x197, x198, x199, MyTrue) -> new_takeWhile8(x195, x199, x197, x198, new_psMyInt(x197, x198, x199)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)=new_takeWhile110(x195, x196, x197, x198, x199, MyTrue) ==> new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue), new_takeWhile110(x278, x279, x280, x281, x282, MyTrue) -> new_takeWhile8(x278, x282, x280, x281, new_psMyInt(x280, x281, x282)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)=new_takeWhile110(x278, x279, x280, x281, x282, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331) -> new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue), new_takeWhile110(x332, x333, x334, x335, x336, MyTrue) -> new_takeWhile8(x332, x336, x334, x335, new_psMyInt(x334, x335, x336)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)=new_takeWhile110(x332, x333, x334, x335, x336, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue), new_takeWhile110(x401, x402, x403, x404, x405, MyTrue) -> new_takeWhile8(x401, x405, x403, x404, new_psMyInt(x403, x404, x405)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)=new_takeWhile110(x401, x402, x403, x404, x405, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue), new_takeWhile110(x469, x470, x471, x472, x473, MyTrue) -> new_takeWhile8(x469, x473, x471, x472, new_psMyInt(x471, x472, x473)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)=new_takeWhile110(x469, x470, x471, x472, x473, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue), new_takeWhile110(x523, x524, x525, x526, x527, MyTrue) -> new_takeWhile8(x523, x527, x525, x526, new_psMyInt(x525, x526, x527)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)=new_takeWhile110(x523, x524, x525, x526, x527, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue), new_takeWhile110(x591, x592, x593, x594, x595, MyTrue) -> new_takeWhile8(x591, x595, x593, x594, new_psMyInt(x593, x594, x595)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)=new_takeWhile110(x591, x592, x593, x594, x595, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue), new_takeWhile110(x645, x646, x647, x648, x649, MyTrue) -> new_takeWhile8(x645, x649, x647, x648, new_psMyInt(x647, x648, x649)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)=new_takeWhile110(x645, x646, x647, x648, x649, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710)), new_takeWhile110(x715, x716, x717, x718, x719, MyTrue) -> new_takeWhile8(x715, x719, x717, x718, new_psMyInt(x717, x718, x719)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))=new_takeWhile110(x715, x716, x717, x718, x719, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_not12(x711, x710)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x711, x710)=MyTrue which results in the following new constraints: 291.74/213.04 291.74/213.04 (3) (new_not10=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 (4) (new_not11=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.74/213.04 291.74/213.04 (5) (new_not12(x1126, x1125)=MyTrue & (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) 291.74/213.04 291.74/213.04 (6) (new_not8=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.04 291.74/213.04 (7) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.74/213.04 291.74/213.04 (8) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) with sigma = [x1127 / x712, x1128 / x713, x1129 / x714] which results in the following new constraint: 291.74/213.04 291.74/213.04 (9) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.74/213.04 291.74/213.04 (10) (new_not4=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (11) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (12) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (13) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue), new_takeWhile110(x798, x799, x800, x801, x802, MyTrue) -> new_takeWhile8(x798, x802, x800, x801, new_psMyInt(x800, x801, x802)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)=new_takeWhile110(x798, x799, x800, x801, x802, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue), new_takeWhile110(x852, x853, x854, x855, x856, MyTrue) -> new_takeWhile8(x852, x856, x854, x855, new_psMyInt(x854, x855, x856)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)=new_takeWhile110(x852, x853, x854, x855, x856, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918)), new_takeWhile110(x922, x923, x924, x925, x926, MyTrue) -> new_takeWhile8(x922, x926, x924, x925, new_psMyInt(x924, x925, x926)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))=new_takeWhile110(x922, x923, x924, x925, x926, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_not12(x917, x918)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x917, x918)=MyTrue which results in the following new constraints: 291.74/213.04 291.74/213.04 (3) (new_not10=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 (4) (new_not11=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.74/213.04 291.74/213.04 (5) (new_not12(x1133, x1132)=MyTrue & (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) 291.74/213.04 291.74/213.04 (6) (new_not8=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.04 291.74/213.04 (7) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.74/213.04 291.74/213.04 (8) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) with sigma = [x1134 / x919, x1135 / x920, x1136 / x921] which results in the following new constraint: 291.74/213.04 291.74/213.04 (9) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.74/213.04 291.74/213.04 (10) (new_not4=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (11) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (12) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (13) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue), new_takeWhile110(x1005, x1006, x1007, x1008, x1009, MyTrue) -> new_takeWhile8(x1005, x1009, x1007, x1008, new_psMyInt(x1007, x1008, x1009)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)=new_takeWhile110(x1005, x1006, x1007, x1008, x1009, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: 291.74/213.04 *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue), new_takeWhile110(x1059, x1060, x1061, x1062, x1063, MyTrue) -> new_takeWhile8(x1059, x1063, x1061, x1062, new_psMyInt(x1061, x1062, x1063)) which results in the following constraint: 291.74/213.04 291.74/213.04 (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)=new_takeWhile110(x1059, x1060, x1061, x1062, x1063, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.04 291.74/213.04 (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 To summarize, we get the following constraints P__>=_ for the following pairs. 291.74/213.04 291.74/213.04 *new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt(x7, x8, Main.Pos(Main.Zero)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt(x15, x16, Main.Neg(Main.Succ(x19))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt(x25, x26, Main.Pos(Main.Zero)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt(x33, x34, Main.Pos(Main.Zero)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt(x42, x43, Main.Neg(Main.Succ(x45))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.74/213.04 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 *new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 291.74/213.04 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. 291.74/213.04 ---------------------------------------- 291.74/213.04 291.74/213.04 (126) 291.74/213.04 Obligation: 291.74/213.04 Q DP problem: 291.74/213.04 The TRS P consists of the following rules: 291.74/213.04 291.74/213.04 new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.74/213.04 new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.74/213.04 291.74/213.04 The TRS R consists of the following rules: 291.74/213.04 291.74/213.04 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.04 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.04 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.04 new_not8 -> new_not4 291.74/213.04 new_not4 -> MyFalse 291.74/213.04 new_not11 -> new_not5 291.74/213.04 new_not5 -> MyTrue 291.74/213.04 new_not10 -> new_not5 291.74/213.04 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.74/213.04 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.04 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.04 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.04 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.04 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.04 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.04 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.04 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.04 291.74/213.04 The set Q consists of the following terms: 291.74/213.04 291.74/213.04 new_not10 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.04 new_not8 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_psMyInt(x0, Main.Neg(x1), x2) 291.74/213.04 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Zero, Main.Zero) 291.74/213.04 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_psMyInt(x0, Main.Pos(x1), x2) 291.74/213.04 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.04 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.04 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.04 new_not4 291.74/213.04 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.04 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.04 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.04 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.04 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.04 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.04 new_not11 291.74/213.04 new_not5 291.74/213.04 291.74/213.04 We have to consider all minimal (P,Q,R)-chains. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (127) 291.74/213.05 Obligation: 291.74/213.05 Q DP problem: 291.74/213.05 The TRS P consists of the following rules: 291.74/213.05 291.74/213.05 new_takeWhile111(wy742, wy743, wy744, Main.Succ(wy7450), Main.Succ(wy7460), wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) -> new_takeWhile111(wy742, wy743, wy744, wy7450, wy7460, wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) 291.74/213.05 291.74/213.05 R is empty. 291.74/213.05 Q is empty. 291.74/213.05 We have to consider all minimal (P,Q,R)-chains. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (128) QDPSizeChangeProof (EQUIVALENT) 291.74/213.05 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. 291.74/213.05 291.74/213.05 From the DPs we obtained the following set of size-change graphs: 291.74/213.05 *new_takeWhile111(wy742, wy743, wy744, Main.Succ(wy7450), Main.Succ(wy7460), wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) -> new_takeWhile111(wy742, wy743, wy744, wy7450, wy7460, wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) 291.74/213.05 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 11, 12 >= 12, 13 >= 13, 14 >= 14, 15 >= 15, 16 >= 16 291.74/213.05 291.74/213.05 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (129) 291.74/213.05 YES 291.74/213.05 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (130) 291.74/213.05 Obligation: 291.74/213.05 Q DP problem: 291.74/213.05 The TRS P consists of the following rules: 291.74/213.05 291.74/213.05 new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) 291.74/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.74/213.05 291.74/213.05 The TRS R consists of the following rules: 291.74/213.05 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.05 new_not10 -> new_not5 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.05 new_not11 -> new_not5 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.74/213.05 new_not4 -> MyFalse 291.74/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.05 new_not5 -> MyTrue 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.74/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.05 new_not8 -> new_not4 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 291.74/213.05 The set Q consists of the following terms: 291.74/213.05 291.74/213.05 new_not10 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.05 new_not8 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.05 new_not7(x0, Main.Zero) 291.74/213.05 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.05 new_not12(Main.Zero, Main.Zero) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.74/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.74/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_not7(x0, Main.Succ(x1)) 291.74/213.05 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.05 new_primPlusNat2(x0, Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_not9(Main.Zero, x0) 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.05 new_not4 291.74/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.74/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.05 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.05 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.05 new_not11 291.74/213.05 new_not5 291.74/213.05 new_not9(Main.Succ(x0), x1) 291.74/213.05 291.74/213.05 We have to consider all minimal (P,Q,R)-chains. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (131) MNOCProof (EQUIVALENT) 291.74/213.05 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (132) 291.74/213.05 Obligation: 291.74/213.05 Q DP problem: 291.74/213.05 The TRS P consists of the following rules: 291.74/213.05 291.74/213.05 new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) 291.74/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.74/213.05 291.74/213.05 The TRS R consists of the following rules: 291.74/213.05 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.05 new_not10 -> new_not5 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.05 new_not11 -> new_not5 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.74/213.05 new_not4 -> MyFalse 291.74/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.05 new_not5 -> MyTrue 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.74/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.05 new_not8 -> new_not4 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 291.74/213.05 Q is empty. 291.74/213.05 We have to consider all (P,Q,R)-chains. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (133) InductionCalculusProof (EQUIVALENT) 291.74/213.05 Note that final constraints are written in bold face. 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 For Pair new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) the following chains were created: 291.74/213.05 *We consider the chain new_takeWhile9(x5, x6, x7, x8, x9) -> new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6)), new_takeWhile113(x10, x11, x12, x13, x14, MyTrue) -> new_takeWhile9(x10, x14, x12, x13, new_psMyInt2(x12, x13, x14)) which results in the following constraint: 291.74/213.05 291.74/213.05 (1) (new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6))=new_takeWhile113(x10, x11, x12, x13, x14, MyTrue) ==> new_takeWhile9(x5, x6, x7, x8, x9)_>=_new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (2) (new_flip1(x5, x6)=MyTrue ==> new_takeWhile9(x5, x6, x7, x8, x9)_>=_new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x5, x6)=MyTrue which results in the following new constraints: 291.74/213.05 291.74/213.05 (3) (new_not10=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 (4) (new_not10=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 (5) (new_not10=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 (6) (new_not8=MyTrue ==> new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.05 291.74/213.05 (7) (new_not8=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 (8) (new_not11=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 (9) (new_not7(x34, Main.Zero)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 (10) (new_not11=MyTrue ==> new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.05 291.74/213.05 (11) (new_not7(x37, x38)=MyTrue ==> new_takeWhile9(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x7, x8, x9, new_flip1(Main.Pos(x38), Main.Pos(Main.Succ(x37))))) 291.74/213.05 291.74/213.05 (12) (new_not9(Main.Zero, x39)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 (13) (new_not9(x41, x40)=MyTrue ==> new_takeWhile9(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x7, x8, x9, new_flip1(Main.Neg(x41), Main.Neg(Main.Succ(x40))))) 291.74/213.05 291.74/213.05 (14) (new_not10=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (15) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (16) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (17) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (18) (new_not4=MyTrue ==> new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (19) (new_not4=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (20) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (9) using rule (VII) which results in the following new constraint: 291.74/213.05 291.74/213.05 (21) (Main.Zero=x42 & new_not7(x34, x42)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (22) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not7(x37, x38)=MyTrue which results in the following new constraints: 291.74/213.05 291.74/213.05 (23) (new_not12(x47, x46)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) 291.74/213.05 291.74/213.05 (24) (new_not8=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (12) using rule (VII) which results in the following new constraint: 291.74/213.05 291.74/213.05 (25) (Main.Zero=x49 & new_not9(x49, x39)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not9(x41, x40)=MyTrue which results in the following new constraints: 291.74/213.05 291.74/213.05 (26) (new_not11=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) 291.74/213.05 291.74/213.05 (27) (new_not12(x55, x54)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.74/213.05 291.74/213.05 (28) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (15) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (29) (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (16) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (30) (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (17) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (31) (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (18) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (32) (new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (19) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (33) (new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (20) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (34) (new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (21) using rule (V) (with possible (I) afterwards) using induction on new_not7(x34, x42)=MyTrue which results in the following new constraints: 291.74/213.05 291.74/213.05 (35) (new_not12(x44, x43)=MyTrue & Main.Zero=Main.Succ(x43) ==> new_takeWhile9(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 (36) (new_not8=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile9(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We solved constraint (35) using rules (I), (II).We simplified constraint (36) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (37) (new_takeWhile9(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (22) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (38) (new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (23) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (39) (new_takeWhile9(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (24) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (40) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on new_not9(x49, x39)=MyTrue which results in the following new constraints: 291.74/213.05 291.74/213.05 (41) (new_not11=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile9(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 (42) (new_not12(x52, x51)=MyTrue & Main.Zero=Main.Succ(x52) ==> new_takeWhile9(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (41) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (43) (new_takeWhile9(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We solved constraint (42) using rules (I), (II).We simplified constraint (26) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (44) (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (27) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (45) (new_takeWhile9(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (28) using rule (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (46) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 For Pair new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: 291.74/213.05 *We consider the chain new_takeWhile113(x15, x16, x17, x18, x19, MyTrue) -> new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19)), new_takeWhile9(x20, x21, x22, x23, x24) -> new_takeWhile113(x20, x21, x22, x23, x24, new_flip1(x20, x21)) which results in the following constraint: 291.74/213.05 291.74/213.05 (1) (new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))=new_takeWhile9(x20, x21, x22, x23, x24) ==> new_takeWhile113(x15, x16, x17, x18, x19, MyTrue)_>=_new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.74/213.05 291.74/213.05 (2) (new_takeWhile113(x15, x16, x17, x18, x19, MyTrue)_>=_new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 To summarize, we get the following constraints P__>=_ for the following pairs. 291.74/213.05 291.74/213.05 *new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) 291.74/213.05 291.74/213.05 291.74/213.05 *(new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 *new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.74/213.05 291.74/213.05 *(new_takeWhile113(x15, x16, x17, x18, x19, MyTrue)_>=_new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))) 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 291.74/213.05 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. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (134) 291.74/213.05 Obligation: 291.74/213.05 Q DP problem: 291.74/213.05 The TRS P consists of the following rules: 291.74/213.05 291.74/213.05 new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) 291.74/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.74/213.05 291.74/213.05 The TRS R consists of the following rules: 291.74/213.05 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.05 new_not10 -> new_not5 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.05 new_not11 -> new_not5 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.74/213.05 new_not4 -> MyFalse 291.74/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.05 new_not5 -> MyTrue 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.74/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.05 new_not8 -> new_not4 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 291.74/213.05 The set Q consists of the following terms: 291.74/213.05 291.74/213.05 new_not10 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.05 new_not8 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.05 new_not7(x0, Main.Zero) 291.74/213.05 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.05 new_not12(Main.Zero, Main.Zero) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.74/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.74/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_not7(x0, Main.Succ(x1)) 291.74/213.05 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.05 new_primPlusNat2(x0, Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_not9(Main.Zero, x0) 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.05 new_not4 291.74/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.74/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.05 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.05 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.05 new_not11 291.74/213.05 new_not5 291.74/213.05 new_not9(Main.Succ(x0), x1) 291.74/213.05 291.74/213.05 We have to consider all minimal (P,Q,R)-chains. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (135) TransformationProof (EQUIVALENT) 291.74/213.05 By narrowing [LPAR04] the rule new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) at position [5] we obtained the following new rules [LPAR04]: 291.74/213.05 291.74/213.05 (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.05 (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.05 (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.05 (new_takeWhile9(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8)) 291.74/213.05 (new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8)) 291.74/213.05 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11)) 291.74/213.05 (new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)),new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero))) 291.74/213.05 (new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11)) 291.74/213.05 (new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)),new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0))) 291.74/213.05 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0))) 291.74/213.05 (new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)),new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1))) 291.74/213.05 (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) 291.74/213.05 291.74/213.05 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (136) 291.74/213.05 Obligation: 291.74/213.05 Q DP problem: 291.74/213.05 The TRS P consists of the following rules: 291.74/213.05 291.74/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.74/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 new_takeWhile9(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8) 291.74/213.05 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.05 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)) 291.74/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 291.74/213.05 The TRS R consists of the following rules: 291.74/213.05 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.74/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.74/213.05 new_not10 -> new_not5 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.74/213.05 new_not11 -> new_not5 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.74/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.74/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.74/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.74/213.05 new_not4 -> MyFalse 291.74/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.74/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.74/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.74/213.05 new_not5 -> MyTrue 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.74/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.74/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.74/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.74/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.74/213.05 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.74/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.74/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.74/213.05 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.74/213.05 new_not8 -> new_not4 291.74/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.74/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 291.74/213.05 The set Q consists of the following terms: 291.74/213.05 291.74/213.05 new_not10 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.74/213.05 new_not8 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.74/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.74/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.74/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.74/213.05 new_not7(x0, Main.Zero) 291.74/213.05 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.74/213.05 new_not12(Main.Zero, Main.Zero) 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.74/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.74/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.74/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.74/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_not7(x0, Main.Succ(x1)) 291.74/213.05 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.74/213.05 new_primPlusNat2(x0, Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.74/213.05 new_not9(Main.Zero, x0) 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.74/213.05 new_not4 291.74/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.74/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.74/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.74/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.74/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.74/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.74/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.74/213.05 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.74/213.05 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.74/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.74/213.05 new_not11 291.74/213.05 new_not5 291.74/213.05 new_not9(Main.Succ(x0), x1) 291.74/213.05 291.74/213.05 We have to consider all minimal (P,Q,R)-chains. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (137) DependencyGraphProof (EQUIVALENT) 291.74/213.05 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 291.74/213.05 ---------------------------------------- 291.74/213.05 291.74/213.05 (138) 291.74/213.05 Obligation: 291.74/213.05 Q DP problem: 291.74/213.05 The TRS P consists of the following rules: 291.74/213.05 291.74/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.74/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.74/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.74/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.74/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.74/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.74/213.05 291.74/213.05 The TRS R consists of the following rules: 291.74/213.05 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.74/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.74/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.74/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.74/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.74/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.91/213.05 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.91/213.05 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (139) UsableRulesProof (EQUIVALENT) 291.91/213.05 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. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (140) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.91/213.05 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (141) QReductionProof (EQUIVALENT) 291.91/213.05 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.91/213.05 291.91/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.91/213.05 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.91/213.05 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.91/213.05 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.91/213.05 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.91/213.05 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.91/213.05 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (142) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (143) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (144) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (145) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (146) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (147) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (148) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (149) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (150) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (151) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (152) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (153) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (154) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (155) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (156) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (157) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (158) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (159) TransformationProof (EQUIVALENT) 291.91/213.05 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.05 291.91/213.05 (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) 291.91/213.05 291.91/213.05 291.91/213.05 ---------------------------------------- 291.91/213.05 291.91/213.05 (160) 291.91/213.05 Obligation: 291.91/213.05 Q DP problem: 291.91/213.05 The TRS P consists of the following rules: 291.91/213.05 291.91/213.05 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.05 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.05 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.05 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.05 291.91/213.05 The TRS R consists of the following rules: 291.91/213.05 291.91/213.05 new_not10 -> new_not5 291.91/213.05 new_not5 -> MyTrue 291.91/213.05 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.05 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.05 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.05 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.05 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.05 new_not8 -> new_not4 291.91/213.05 new_not4 -> MyFalse 291.91/213.05 new_not11 -> new_not5 291.91/213.05 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.05 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.05 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.05 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.05 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.05 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.05 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.05 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.05 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.05 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.05 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.05 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.05 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.05 291.91/213.05 The set Q consists of the following terms: 291.91/213.05 291.91/213.05 new_not10 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.05 new_not8 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not7(x0, Main.Zero) 291.91/213.05 new_not12(Main.Zero, Main.Zero) 291.91/213.05 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.05 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_not7(x0, Main.Succ(x1)) 291.91/213.05 new_primPlusNat2(x0, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.05 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.05 new_not9(Main.Zero, x0) 291.91/213.05 new_not4 291.91/213.05 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.05 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.05 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.05 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.05 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.05 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.05 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.05 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.05 new_not11 291.91/213.05 new_not5 291.91/213.05 new_not9(Main.Succ(x0), x1) 291.91/213.05 291.91/213.05 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (161) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (162) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (163) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (164) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (165) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (166) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (167) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (168) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (169) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (170) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (171) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (172) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (173) TransformationProof (EQUIVALENT) 291.91/213.06 By narrowing [LPAR04] the rule new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1))) 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (174) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (175) DependencyGraphProof (EQUIVALENT) 291.91/213.06 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (176) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.91/213.06 new_not7(wy2000, Main.Zero) -> new_not8 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (177) UsableRulesProof (EQUIVALENT) 291.91/213.06 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. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (178) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (179) QReductionProof (EQUIVALENT) 291.91/213.06 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.91/213.06 291.91/213.06 new_not7(x0, Main.Zero) 291.91/213.06 new_not7(x0, Main.Succ(x1)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (180) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (181) TransformationProof (EQUIVALENT) 291.91/213.06 By narrowing [LPAR04] the rule new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11)) 291.91/213.06 (new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1))) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (182) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 new_not9(Main.Zero, wy2000) -> new_not11 291.91/213.06 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (183) UsableRulesProof (EQUIVALENT) 291.91/213.06 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. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (184) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (185) QReductionProof (EQUIVALENT) 291.91/213.06 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.91/213.06 291.91/213.06 new_not9(Main.Zero, x0) 291.91/213.06 new_not9(Main.Succ(x0), x1) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (186) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (187) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (188) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (189) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (190) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (191) TransformationProof (EQUIVALENT) 291.91/213.06 By narrowing [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11)) 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1))) 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (192) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (193) DependencyGraphProof (EQUIVALENT) 291.91/213.06 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (194) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (195) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (196) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (197) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (198) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (199) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (200) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.06 291.91/213.06 The TRS R consists of the following rules: 291.91/213.06 291.91/213.06 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.06 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.06 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.06 new_not8 -> new_not4 291.91/213.06 new_not4 -> MyFalse 291.91/213.06 new_not11 -> new_not5 291.91/213.06 new_not5 -> MyTrue 291.91/213.06 new_not10 -> new_not5 291.91/213.06 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.06 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.06 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.06 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.06 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.06 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.06 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.06 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.06 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.06 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.06 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.06 291.91/213.06 The set Q consists of the following terms: 291.91/213.06 291.91/213.06 new_not10 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.06 new_not8 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Zero, Main.Zero) 291.91/213.06 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.06 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.06 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_primPlusNat2(x0, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.06 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.06 new_not4 291.91/213.06 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.06 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.06 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.06 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.06 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.06 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.06 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.06 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.06 new_not11 291.91/213.06 new_not5 291.91/213.06 291.91/213.06 We have to consider all minimal (P,Q,R)-chains. 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (201) TransformationProof (EQUIVALENT) 291.91/213.06 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.06 291.91/213.06 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.91/213.06 291.91/213.06 291.91/213.06 ---------------------------------------- 291.91/213.06 291.91/213.06 (202) 291.91/213.06 Obligation: 291.91/213.06 Q DP problem: 291.91/213.06 The TRS P consists of the following rules: 291.91/213.06 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.06 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (203) TransformationProof (EQUIVALENT) 291.91/213.07 By narrowing [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11)) 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1))) 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (204) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (205) DependencyGraphProof (EQUIVALENT) 291.91/213.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (206) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (207) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (208) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (209) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (210) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (211) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (212) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (213) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (214) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (215) TransformationProof (EQUIVALENT) 291.91/213.07 By narrowing [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11)) 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1))) 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (216) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (217) DependencyGraphProof (EQUIVALENT) 291.91/213.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (218) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (219) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (220) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (221) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (222) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (223) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (224) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (225) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (226) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (227) TransformationProof (EQUIVALENT) 291.91/213.07 By narrowing [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11)) 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1))) 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (228) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (229) DependencyGraphProof (EQUIVALENT) 291.91/213.07 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (230) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (231) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (232) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (233) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (234) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (235) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (236) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (237) TransformationProof (EQUIVALENT) 291.91/213.07 By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.91/213.07 291.91/213.07 (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (238) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.07 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.07 291.91/213.07 The set Q consists of the following terms: 291.91/213.07 291.91/213.07 new_not10 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.07 new_not8 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Zero, Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.07 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.07 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_primPlusNat2(x0, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.07 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.07 new_not4 291.91/213.07 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.07 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.07 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.07 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.07 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.07 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.07 new_not11 291.91/213.07 new_not5 291.91/213.07 291.91/213.07 We have to consider all minimal (P,Q,R)-chains. 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (239) QDPOrderProof (EQUIVALENT) 291.91/213.07 We use the reduction pair processor [LPAR04,JAR06]. 291.91/213.07 291.91/213.07 291.91/213.07 The following pairs can be oriented strictly and are deleted. 291.91/213.07 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 The remaining pairs can at least be oriented weakly. 291.91/213.07 Used ordering: Polynomial interpretation [POLO]: 291.91/213.07 291.91/213.07 POL(Main.Neg(x_1)) = x_1 291.91/213.07 POL(Main.Pos(x_1)) = 0 291.91/213.07 POL(Main.Succ(x_1)) = 0 291.91/213.07 POL(Main.Zero) = 1 291.91/213.07 POL(MyFalse) = 0 291.91/213.07 POL(MyTrue) = 0 291.91/213.07 POL(new_not10) = 0 291.91/213.07 POL(new_not11) = 0 291.91/213.07 POL(new_not12(x_1, x_2)) = 0 291.91/213.07 POL(new_not4) = 0 291.91/213.07 POL(new_not5) = 0 291.91/213.07 POL(new_not8) = 0 291.91/213.07 POL(new_primMinusNat0(x_1, x_2)) = 0 291.91/213.07 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 291.91/213.07 POL(new_primPlusInt1(x_1, x_2)) = 0 291.91/213.07 POL(new_primPlusInt2(x_1, x_2)) = x_1 291.91/213.07 POL(new_primPlusNat0(x_1, x_2)) = x_1 291.91/213.07 POL(new_primPlusNat2(x_1, x_2)) = x_1 291.91/213.07 POL(new_psMyInt2(x_1, x_2, x_3)) = 0 291.91/213.07 POL(new_takeWhile113(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 291.91/213.07 POL(new_takeWhile9(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 291.91/213.07 291.91/213.07 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.91/213.07 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.07 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.07 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.07 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.07 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.07 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.07 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.07 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.07 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.07 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.07 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.07 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.07 291.91/213.07 291.91/213.07 ---------------------------------------- 291.91/213.07 291.91/213.07 (240) 291.91/213.07 Obligation: 291.91/213.07 Q DP problem: 291.91/213.07 The TRS P consists of the following rules: 291.91/213.07 291.91/213.07 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.07 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.91/213.07 291.91/213.07 The TRS R consists of the following rules: 291.91/213.07 291.91/213.07 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.07 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.07 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.07 new_not8 -> new_not4 291.91/213.07 new_not4 -> MyFalse 291.91/213.07 new_not11 -> new_not5 291.91/213.07 new_not5 -> MyTrue 291.91/213.07 new_not10 -> new_not5 291.91/213.07 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.08 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.08 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.08 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.08 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.08 291.91/213.08 The set Q consists of the following terms: 291.91/213.08 291.91/213.08 new_not10 291.91/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.91/213.08 new_not8 291.91/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.91/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.91/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.91/213.08 new_not12(Main.Zero, Main.Zero) 291.91/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.91/213.08 new_primPlusNat2(x0, Main.Succ(x1)) 291.91/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.91/213.08 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.91/213.08 new_not12(Main.Zero, Main.Succ(x0)) 291.91/213.08 new_primPlusNat2(x0, Main.Zero) 291.91/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.91/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.91/213.08 new_not12(Main.Succ(x0), Main.Zero) 291.91/213.08 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.91/213.08 new_not4 291.91/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.91/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.91/213.08 new_psMyInt2(x0, Main.Neg(x1), x2) 291.91/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.91/213.08 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.91/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.91/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.91/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.91/213.08 new_not11 291.91/213.08 new_not5 291.91/213.08 291.91/213.08 We have to consider all minimal (P,Q,R)-chains. 291.91/213.08 ---------------------------------------- 291.91/213.08 291.91/213.08 (241) MNOCProof (EQUIVALENT) 291.91/213.08 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.91/213.08 ---------------------------------------- 291.91/213.08 291.91/213.08 (242) 291.91/213.08 Obligation: 291.91/213.08 Q DP problem: 291.91/213.08 The TRS P consists of the following rules: 291.91/213.08 291.91/213.08 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.91/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.91/213.08 291.91/213.08 The TRS R consists of the following rules: 291.91/213.08 291.91/213.08 new_not12(Main.Zero, Main.Zero) -> new_not10 291.91/213.08 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.91/213.08 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.91/213.08 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.91/213.08 new_not8 -> new_not4 291.91/213.08 new_not4 -> MyFalse 291.91/213.08 new_not11 -> new_not5 291.91/213.08 new_not5 -> MyTrue 291.91/213.08 new_not10 -> new_not5 291.91/213.08 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.91/213.08 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.91/213.08 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.91/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.91/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.91/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.91/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.91/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.91/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.91/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.91/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.91/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.91/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.91/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.91/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.91/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.91/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.91/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.91/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.91/213.08 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.91/213.08 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.91/213.08 291.91/213.08 Q is empty. 291.91/213.08 We have to consider all (P,Q,R)-chains. 291.91/213.08 ---------------------------------------- 291.91/213.08 291.91/213.08 (243) InductionCalculusProof (EQUIVALENT) 291.91/213.08 Note that final constraints are written in bold face. 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile113(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile9(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) ==> new_takeWhile113(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile9(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt2(x7, x8, Main.Pos(Main.Zero)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x13, x14, x15, x16, x17, MyTrue) -> new_takeWhile9(x13, x17, x15, x16, new_psMyInt2(x15, x16, x17)), new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) -> new_takeWhile113(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x13, x17, x15, x16, new_psMyInt2(x15, x16, x17))=new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) ==> new_takeWhile113(x13, x14, x15, x16, x17, MyTrue)_>=_new_takeWhile9(x13, x17, x15, x16, new_psMyInt2(x15, x16, x17))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt2(x15, x16, Main.Neg(Main.Succ(x19))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x23, x24, x25, x26, x27, MyTrue) -> new_takeWhile9(x23, x27, x25, x26, new_psMyInt2(x25, x26, x27)), new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x23, x27, x25, x26, new_psMyInt2(x25, x26, x27))=new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) ==> new_takeWhile113(x23, x24, x25, x26, x27, MyTrue)_>=_new_takeWhile9(x23, x27, x25, x26, new_psMyInt2(x25, x26, x27))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt2(x25, x26, Main.Pos(Main.Zero)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x31, x32, x33, x34, x35, MyTrue) -> new_takeWhile9(x31, x35, x33, x34, new_psMyInt2(x33, x34, x35)), new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) -> new_takeWhile113(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x31, x35, x33, x34, new_psMyInt2(x33, x34, x35))=new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) ==> new_takeWhile113(x31, x32, x33, x34, x35, MyTrue)_>=_new_takeWhile9(x31, x35, x33, x34, new_psMyInt2(x33, x34, x35))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt2(x33, x34, Main.Pos(Main.Zero)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x40, x41, x42, x43, x44, MyTrue) -> new_takeWhile9(x40, x44, x42, x43, new_psMyInt2(x42, x43, x44)), new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x40, x44, x42, x43, new_psMyInt2(x42, x43, x44))=new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) ==> new_takeWhile113(x40, x41, x42, x43, x44, MyTrue)_>=_new_takeWhile9(x40, x44, x42, x43, new_psMyInt2(x42, x43, x44))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt2(x42, x43, Main.Neg(Main.Succ(x45))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x49, x50, x51, x52, x53, MyTrue) -> new_takeWhile9(x49, x53, x51, x52, new_psMyInt2(x51, x52, x53)), new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x49, x53, x51, x52, new_psMyInt2(x51, x52, x53))=new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) ==> new_takeWhile113(x49, x50, x51, x52, x53, MyTrue)_>=_new_takeWhile9(x49, x53, x51, x52, new_psMyInt2(x51, x52, x53))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt2(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x57, x58, x59, x60, x61, MyTrue) -> new_takeWhile9(x57, x61, x59, x60, new_psMyInt2(x59, x60, x61)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x57, x61, x59, x60, new_psMyInt2(x59, x60, x61))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) ==> new_takeWhile113(x57, x58, x59, x60, x61, MyTrue)_>=_new_takeWhile9(x57, x61, x59, x60, new_psMyInt2(x59, x60, x61))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt2(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x66, x67, x68, x69, x70, MyTrue) -> new_takeWhile9(x66, x70, x68, x69, new_psMyInt2(x68, x69, x70)), new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x66, x70, x68, x69, new_psMyInt2(x68, x69, x70))=new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) ==> new_takeWhile113(x66, x67, x68, x69, x70, MyTrue)_>=_new_takeWhile9(x66, x70, x68, x69, new_psMyInt2(x68, x69, x70))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt2(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x74, x75, x76, x77, x78, MyTrue) -> new_takeWhile9(x74, x78, x76, x77, new_psMyInt2(x76, x77, x78)), new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x74, x78, x76, x77, new_psMyInt2(x76, x77, x78))=new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) ==> new_takeWhile113(x74, x75, x76, x77, x78, MyTrue)_>=_new_takeWhile9(x74, x78, x76, x77, new_psMyInt2(x76, x77, x78))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt2(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x83, x84, x85, x86, x87, MyTrue) -> new_takeWhile9(x83, x87, x85, x86, new_psMyInt2(x85, x86, x87)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92, new_not12(x89, x88)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x83, x87, x85, x86, new_psMyInt2(x85, x86, x87))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) ==> new_takeWhile113(x83, x84, x85, x86, x87, MyTrue)_>=_new_takeWhile9(x83, x87, x85, x86, new_psMyInt2(x85, x86, x87))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt2(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x93, x94, x95, x96, x97, MyTrue) -> new_takeWhile9(x93, x97, x95, x96, new_psMyInt2(x95, x96, x97)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x93, x97, x95, x96, new_psMyInt2(x95, x96, x97))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) ==> new_takeWhile113(x93, x94, x95, x96, x97, MyTrue)_>=_new_takeWhile9(x93, x97, x95, x96, new_psMyInt2(x95, x96, x97))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt2(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x101, x102, x103, x104, x105, MyTrue) -> new_takeWhile9(x101, x105, x103, x104, new_psMyInt2(x103, x104, x105)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x101, x105, x103, x104, new_psMyInt2(x103, x104, x105))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) ==> new_takeWhile113(x101, x102, x103, x104, x105, MyTrue)_>=_new_takeWhile9(x101, x105, x103, x104, new_psMyInt2(x103, x104, x105))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt2(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x110, x111, x112, x113, x114, MyTrue) -> new_takeWhile9(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114)), new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119, new_not12(x115, x116)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114))=new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) ==> new_takeWhile113(x110, x111, x112, x113, x114, MyTrue)_>=_new_takeWhile9(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt2(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x120, x121, x122, x123, x124, MyTrue) -> new_takeWhile9(x120, x124, x122, x123, new_psMyInt2(x122, x123, x124)), new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x120, x124, x122, x123, new_psMyInt2(x122, x123, x124))=new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) ==> new_takeWhile113(x120, x121, x122, x123, x124, MyTrue)_>=_new_takeWhile9(x120, x124, x122, x123, new_psMyInt2(x122, x123, x124))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt2(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *We consider the chain new_takeWhile113(x128, x129, x130, x131, x132, MyTrue) -> new_takeWhile9(x128, x132, x130, x131, new_psMyInt2(x130, x131, x132)), new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136, MyTrue) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile9(x128, x132, x130, x131, new_psMyInt2(x130, x131, x132))=new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) ==> new_takeWhile113(x128, x129, x130, x131, x132, MyTrue)_>=_new_takeWhile9(x128, x132, x130, x131, new_psMyInt2(x130, x131, x132))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt2(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue), new_takeWhile113(x140, x141, x142, x143, x144, MyTrue) -> new_takeWhile9(x140, x144, x142, x143, new_psMyInt2(x142, x143, x144)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)=new_takeWhile113(x140, x141, x142, x143, x144, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194) -> new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue), new_takeWhile113(x195, x196, x197, x198, x199, MyTrue) -> new_takeWhile9(x195, x199, x197, x198, new_psMyInt2(x197, x198, x199)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)=new_takeWhile113(x195, x196, x197, x198, x199, MyTrue) ==> new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue), new_takeWhile113(x278, x279, x280, x281, x282, MyTrue) -> new_takeWhile9(x278, x282, x280, x281, new_psMyInt2(x280, x281, x282)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)=new_takeWhile113(x278, x279, x280, x281, x282, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331) -> new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue), new_takeWhile113(x332, x333, x334, x335, x336, MyTrue) -> new_takeWhile9(x332, x336, x334, x335, new_psMyInt2(x334, x335, x336)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)=new_takeWhile113(x332, x333, x334, x335, x336, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue), new_takeWhile113(x401, x402, x403, x404, x405, MyTrue) -> new_takeWhile9(x401, x405, x403, x404, new_psMyInt2(x403, x404, x405)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)=new_takeWhile113(x401, x402, x403, x404, x405, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue), new_takeWhile113(x469, x470, x471, x472, x473, MyTrue) -> new_takeWhile9(x469, x473, x471, x472, new_psMyInt2(x471, x472, x473)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)=new_takeWhile113(x469, x470, x471, x472, x473, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue), new_takeWhile113(x523, x524, x525, x526, x527, MyTrue) -> new_takeWhile9(x523, x527, x525, x526, new_psMyInt2(x525, x526, x527)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)=new_takeWhile113(x523, x524, x525, x526, x527, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue), new_takeWhile113(x591, x592, x593, x594, x595, MyTrue) -> new_takeWhile9(x591, x595, x593, x594, new_psMyInt2(x593, x594, x595)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)=new_takeWhile113(x591, x592, x593, x594, x595, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue), new_takeWhile113(x645, x646, x647, x648, x649, MyTrue) -> new_takeWhile9(x645, x649, x647, x648, new_psMyInt2(x647, x648, x649)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)=new_takeWhile113(x645, x646, x647, x648, x649, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710)), new_takeWhile113(x715, x716, x717, x718, x719, MyTrue) -> new_takeWhile9(x715, x719, x717, x718, new_psMyInt2(x717, x718, x719)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))=new_takeWhile113(x715, x716, x717, x718, x719, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_not12(x711, x710)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x711, x710)=MyTrue which results in the following new constraints: 291.91/213.08 291.91/213.08 (3) (new_not10=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.91/213.08 291.91/213.08 (4) (new_not11=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.91/213.08 291.91/213.08 (5) (new_not12(x1126, x1125)=MyTrue & (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) 291.91/213.08 291.91/213.08 (6) (new_not8=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.91/213.08 291.91/213.08 (7) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.91/213.08 291.91/213.08 (8) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) with sigma = [x1127 / x712, x1128 / x713, x1129 / x714] which results in the following new constraint: 291.91/213.08 291.91/213.08 (9) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.91/213.08 291.91/213.08 (10) (new_not4=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (11) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (12) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (13) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue), new_takeWhile113(x798, x799, x800, x801, x802, MyTrue) -> new_takeWhile9(x798, x802, x800, x801, new_psMyInt2(x800, x801, x802)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)=new_takeWhile113(x798, x799, x800, x801, x802, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue), new_takeWhile113(x852, x853, x854, x855, x856, MyTrue) -> new_takeWhile9(x852, x856, x854, x855, new_psMyInt2(x854, x855, x856)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)=new_takeWhile113(x852, x853, x854, x855, x856, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918)), new_takeWhile113(x922, x923, x924, x925, x926, MyTrue) -> new_takeWhile9(x922, x926, x924, x925, new_psMyInt2(x924, x925, x926)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))=new_takeWhile113(x922, x923, x924, x925, x926, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_not12(x917, x918)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x917, x918)=MyTrue which results in the following new constraints: 291.91/213.08 291.91/213.08 (3) (new_not10=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.91/213.08 291.91/213.08 (4) (new_not11=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.91/213.08 291.91/213.08 (5) (new_not12(x1133, x1132)=MyTrue & (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) 291.91/213.08 291.91/213.08 (6) (new_not8=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: 291.91/213.08 291.91/213.08 (7) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.91/213.08 291.91/213.08 (8) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) with sigma = [x1134 / x919, x1135 / x920, x1136 / x921] which results in the following new constraint: 291.91/213.08 291.91/213.08 (9) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.91/213.08 291.91/213.08 (10) (new_not4=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (11) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (12) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (13) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue), new_takeWhile113(x1005, x1006, x1007, x1008, x1009, MyTrue) -> new_takeWhile9(x1005, x1009, x1007, x1008, new_psMyInt2(x1007, x1008, x1009)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)=new_takeWhile113(x1005, x1006, x1007, x1008, x1009, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: 291.91/213.08 *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue), new_takeWhile113(x1059, x1060, x1061, x1062, x1063, MyTrue) -> new_takeWhile9(x1059, x1063, x1061, x1062, new_psMyInt2(x1061, x1062, x1063)) which results in the following constraint: 291.91/213.08 291.91/213.08 (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)=new_takeWhile113(x1059, x1060, x1061, x1062, x1063, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.91/213.08 291.91/213.08 (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 To summarize, we get the following constraints P__>=_ for the following pairs. 291.91/213.08 291.91/213.08 *new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt2(x7, x8, Main.Pos(Main.Zero)))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt2(x15, x16, Main.Neg(Main.Succ(x19))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt2(x25, x26, Main.Pos(Main.Zero)))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt2(x33, x34, Main.Pos(Main.Zero)))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt2(x42, x43, Main.Neg(Main.Succ(x45))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt2(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt2(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt2(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt2(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt2(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt2(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt2(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt2(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt2(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) 291.91/213.08 291.91/213.08 291.91/213.08 *(new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt2(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.08 291.91/213.08 *(new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.91/213.08 291.91/213.08 *(new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 291.91/213.08 *new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.91/213.08 291.91/213.08 *(new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) 291.92/213.08 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) 291.92/213.08 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) 291.92/213.08 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) 291.92/213.08 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) 291.92/213.08 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) 291.92/213.08 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 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. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (244) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.08 new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.08 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.08 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.08 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.08 new_not8 -> new_not4 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_not11 -> new_not5 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_not10 -> new_not5 291.92/213.08 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.08 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.08 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.08 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_not10 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_not8 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not12(Main.Zero, Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.08 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_primPlusNat2(x0, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not11 291.92/213.08 new_not5 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (245) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.08 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not1) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not3) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Zero, Main.Succ(wy75300))) 291.92/213.08 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) 291.92/213.08 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.08 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not3) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (246) DependencyGraphProof (EQUIVALENT) 291.92/213.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (247) 291.92/213.08 Complex Obligation (AND) 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (248) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (249) TransformationProof (EQUIVALENT) 291.92/213.08 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (250) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (251) TransformationProof (EQUIVALENT) 291.92/213.08 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (252) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (253) TransformationProof (EQUIVALENT) 291.92/213.08 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (254) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (255) TransformationProof (EQUIVALENT) 291.92/213.08 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (256) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (257) TransformationProof (EQUIVALENT) 291.92/213.08 By instantiating [LPAR04] the rule new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)),new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0))) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (258) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.08 new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (259) TransformationProof (EQUIVALENT) 291.92/213.08 By instantiating [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (260) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.08 new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (261) TransformationProof (EQUIVALENT) 291.92/213.08 By instantiating [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.08 291.92/213.08 (new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (262) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (263) QDPOrderProof (EQUIVALENT) 291.92/213.08 We use the reduction pair processor [LPAR04,JAR06]. 291.92/213.08 291.92/213.08 291.92/213.08 The following pairs can be oriented strictly and are deleted. 291.92/213.08 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.08 The remaining pairs can at least be oriented weakly. 291.92/213.08 Used ordering: Polynomial interpretation [POLO]: 291.92/213.08 291.92/213.08 POL(Main.Neg(x_1)) = 1 + x_1 291.92/213.08 POL(Main.Pos(x_1)) = 1 291.92/213.08 POL(Main.Succ(x_1)) = 0 291.92/213.08 POL(Main.Zero) = 1 291.92/213.08 POL(MyFalse) = 1 291.92/213.08 POL(MyTrue) = 0 291.92/213.08 POL(new_not0(x_1, x_2)) = x_2 291.92/213.08 POL(new_not1) = 1 291.92/213.08 POL(new_not2) = 1 291.92/213.08 POL(new_not3) = 1 291.92/213.08 POL(new_not4) = 1 291.92/213.08 POL(new_not5) = 1 291.92/213.08 POL(new_primMinusNat0(x_1, x_2)) = 1 291.92/213.08 POL(new_primPlusInt0(x_1, x_2, x_3)) = 1 291.92/213.08 POL(new_primPlusInt1(x_1, x_2)) = 1 291.92/213.08 POL(new_primPlusInt2(x_1, x_2)) = 1 + x_1 291.92/213.08 POL(new_primPlusNat0(x_1, x_2)) = x_1 291.92/213.08 POL(new_psMyInt(x_1, x_2, x_3)) = 1 291.92/213.08 POL(new_takeWhile(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 291.92/213.08 POL(new_takeWhile1(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_3 + x_4 + x_5 291.92/213.08 POL(new_takeWhile10(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 291.92/213.08 291.92/213.08 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.92/213.08 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 291.92/213.08 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (264) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 The set Q consists of the following terms: 291.92/213.08 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.08 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.08 new_not2 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.08 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.08 new_not3 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_not4 291.92/213.08 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.08 new_not1 291.92/213.08 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.08 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) 291.92/213.08 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.08 new_not5 291.92/213.08 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.08 291.92/213.08 We have to consider all minimal (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (265) MNOCProof (EQUIVALENT) 291.92/213.08 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (266) 291.92/213.08 Obligation: 291.92/213.08 Q DP problem: 291.92/213.08 The TRS P consists of the following rules: 291.92/213.08 291.92/213.08 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.08 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.08 new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.08 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.08 291.92/213.08 The TRS R consists of the following rules: 291.92/213.08 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.08 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.08 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.08 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.08 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.08 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.08 new_not4 -> MyFalse 291.92/213.08 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.08 new_not3 -> new_not4 291.92/213.08 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.08 new_not5 -> MyTrue 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.08 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.08 new_not1 -> new_not5 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.08 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.08 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.08 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.08 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.08 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.08 new_not2 -> new_not5 291.92/213.08 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.08 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.08 291.92/213.08 Q is empty. 291.92/213.08 We have to consider all (P,Q,R)-chains. 291.92/213.08 ---------------------------------------- 291.92/213.08 291.92/213.08 (267) InductionCalculusProof (EQUIVALENT) 291.92/213.08 Note that final constraints are written in bold face. 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 For Pair new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: 291.92/213.08 *We consider the chain new_takeWhile1(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile(x10, x11, x12, x13, x14) -> new_takeWhile10(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: 291.92/213.08 291.92/213.08 (1) (new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile(x10, x11, x12, x13, x14) ==> new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.08 291.92/213.08 (2) (new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 For Pair new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) the following chains were created: 291.92/213.08 *We consider the chain new_takeWhile(x35, x36, x37, x38, x39) -> new_takeWhile10(Main.Pos(x35), x36, x37, x38, x39, x36), new_takeWhile10(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) -> new_takeWhile1(x40, Main.Pos(Main.Succ(x41)), x42, x43, x44, new_not0(Main.Succ(x41), x40)) which results in the following constraint: 291.92/213.08 291.92/213.08 (1) (new_takeWhile10(Main.Pos(x35), x36, x37, x38, x39, x36)=new_takeWhile10(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) ==> new_takeWhile(x35, x36, x37, x38, x39)_>=_new_takeWhile10(Main.Pos(x35), x36, x37, x38, x39, x36)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.08 291.92/213.08 (2) (new_takeWhile(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile10(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 *We consider the chain new_takeWhile(x45, x46, x47, x48, x49) -> new_takeWhile10(Main.Pos(x45), x46, x47, x48, x49, x46), new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x50, x51, x52, MyTrue) which results in the following constraint: 291.92/213.08 291.92/213.08 (1) (new_takeWhile10(Main.Pos(x45), x46, x47, x48, x49, x46)=new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) ==> new_takeWhile(x45, x46, x47, x48, x49)_>=_new_takeWhile10(Main.Pos(x45), x46, x47, x48, x49, x46)) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.08 291.92/213.08 (2) (new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 For Pair new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) the following chains were created: 291.92/213.08 *We consider the chain new_takeWhile10(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54))) -> new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53)), new_takeWhile1(x58, x59, x60, x61, x62, MyTrue) -> new_takeWhile(x58, x62, x60, x61, new_psMyInt(x60, x61, x62)) which results in the following constraint: 291.92/213.08 291.92/213.08 (1) (new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))=new_takeWhile1(x58, x59, x60, x61, x62, MyTrue) ==> new_takeWhile10(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.92/213.08 291.92/213.08 (2) (Main.Succ(x54)=x95 & new_not0(x95, x53)=MyTrue ==> new_takeWhile10(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) 291.92/213.08 291.92/213.08 291.92/213.08 291.92/213.08 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x95, x53)=MyTrue which results in the following new constraints: 291.92/213.08 291.92/213.08 (3) (new_not1=MyTrue & Main.Succ(x54)=Main.Succ(x96) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.09 291.92/213.09 (4) (new_not3=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile10(Main.Pos(Main.Succ(x97)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Succ(x97), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x97)))) 291.92/213.09 291.92/213.09 (5) (new_not0(x99, x98)=MyTrue & Main.Succ(x54)=Main.Succ(x99) & (\/x100,x101,x102,x103:new_not0(x99, x98)=MyTrue & Main.Succ(x100)=x99 ==> new_takeWhile10(Main.Pos(x98), Main.Pos(Main.Succ(x100)), x101, x102, x103, Main.Pos(Main.Succ(x100)))_>=_new_takeWhile1(x98, Main.Pos(Main.Succ(x100)), x101, x102, x103, new_not0(Main.Succ(x100), x98))) ==> new_takeWhile10(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Succ(x98), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x98)))) 291.92/213.09 291.92/213.09 (6) (new_not2=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (7) (new_not1=MyTrue ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (8) (new_not0(x99, x98)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x99)), x55, x56, x57, Main.Pos(Main.Succ(x99)))_>=_new_takeWhile1(Main.Succ(x98), Main.Pos(Main.Succ(x99)), x55, x56, x57, new_not0(Main.Succ(x99), Main.Succ(x98)))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.09 291.92/213.09 (9) (new_not5=MyTrue ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (10) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x99, x98)=MyTrue which results in the following new constraints: 291.92/213.09 291.92/213.09 (11) (new_not1=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) 291.92/213.09 291.92/213.09 (12) (new_not3=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) 291.92/213.09 291.92/213.09 (13) (new_not0(x107, x106)=MyTrue & (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile1(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) 291.92/213.09 291.92/213.09 (14) (new_not2=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (11) using rule (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (15) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (16) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) with sigma = [x108 / x55, x109 / x56, x110 / x57] which results in the following new constraint: 291.92/213.09 291.92/213.09 (17) (new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile1(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (18) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 For Pair new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.09 *We consider the chain new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue), new_takeWhile1(x81, x82, x83, x84, x85, MyTrue) -> new_takeWhile(x81, x85, x83, x84, new_psMyInt(x83, x84, x85)) which results in the following constraint: 291.92/213.09 291.92/213.09 (1) (new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)=new_takeWhile1(x81, x82, x83, x84, x85, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.09 291.92/213.09 (2) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.09 291.92/213.09 *new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 291.92/213.09 *(new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 *new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 291.92/213.09 *(new_takeWhile(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile10(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) 291.92/213.09 291.92/213.09 291.92/213.09 *(new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 *new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.09 291.92/213.09 *(new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile1(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) 291.92/213.09 291.92/213.09 291.92/213.09 *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.09 291.92/213.09 291.92/213.09 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) 291.92/213.09 291.92/213.09 291.92/213.09 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) 291.92/213.09 291.92/213.09 291.92/213.09 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 *new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 291.92/213.09 *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.09 291.92/213.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. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (268) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (269) TransformationProof (EQUIVALENT) 291.92/213.09 By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1))) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (270) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (271) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (272) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (273) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (274) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (275) TransformationProof (EQUIVALENT) 291.92/213.09 By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (276) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (277) DependencyGraphProof (EQUIVALENT) 291.92/213.09 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (278) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (279) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (280) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (281) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (282) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (283) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (284) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (285) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (286) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (287) TransformationProof (EQUIVALENT) 291.92/213.09 By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (288) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (289) DependencyGraphProof (EQUIVALENT) 291.92/213.09 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (290) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (291) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (292) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (293) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (294) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (295) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (296) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (297) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (298) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (299) TransformationProof (EQUIVALENT) 291.92/213.09 By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3)) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (300) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (301) DependencyGraphProof (EQUIVALENT) 291.92/213.09 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (302) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (303) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (304) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (305) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (306) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (307) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (308) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.09 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.09 new_not3 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_not4 291.92/213.09 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_not1 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.09 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) 291.92/213.09 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.09 new_not5 291.92/213.09 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 291.92/213.09 We have to consider all minimal (P,Q,R)-chains. 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (309) TransformationProof (EQUIVALENT) 291.92/213.09 By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.09 291.92/213.09 (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) 291.92/213.09 291.92/213.09 291.92/213.09 ---------------------------------------- 291.92/213.09 291.92/213.09 (310) 291.92/213.09 Obligation: 291.92/213.09 Q DP problem: 291.92/213.09 The TRS P consists of the following rules: 291.92/213.09 291.92/213.09 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.09 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.09 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.09 291.92/213.09 The TRS R consists of the following rules: 291.92/213.09 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.09 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.09 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.09 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.09 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.09 new_not4 -> MyFalse 291.92/213.09 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.09 new_not3 -> new_not4 291.92/213.09 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.09 new_not5 -> MyTrue 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.09 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.09 new_not1 -> new_not5 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.09 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.09 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.09 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.09 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.09 new_not2 -> new_not5 291.92/213.09 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.09 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.09 291.92/213.09 The set Q consists of the following terms: 291.92/213.09 291.92/213.09 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.09 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.09 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.09 new_not2 291.92/213.09 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.09 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.09 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.09 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (311) MNOCProof (EQUIVALENT) 291.92/213.10 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (312) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 Q is empty. 291.92/213.10 We have to consider all (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (313) InductionCalculusProof (EQUIVALENT) 291.92/213.10 Note that final constraints are written in bold face. 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile1(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile(x10, x11, x12, x13, x14) -> new_takeWhile10(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile(x10, x11, x12, x13, x14) ==> new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile(x70, x71, x72, x73, x74) -> new_takeWhile10(Main.Pos(x70), x71, x72, x73, x74, x71), new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x75, x76, x77, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x70), x71, x72, x73, x74, x71)=new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) ==> new_takeWhile(x70, x71, x72, x73, x74)_>=_new_takeWhile10(Main.Pos(x70), x71, x72, x73, x74, x71)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x78, x79, x80, x81, x82) -> new_takeWhile10(Main.Pos(x78), x79, x80, x81, x82, x79), new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x83)), x84, x85, x86, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x78), x79, x80, x81, x82, x79)=new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) ==> new_takeWhile(x78, x79, x80, x81, x82)_>=_new_takeWhile10(Main.Pos(x78), x79, x80, x81, x82, x79)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x87, x88, x89, x90, x91) -> new_takeWhile10(Main.Pos(x87), x88, x89, x90, x91, x88), new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x87), x88, x89, x90, x91, x88)=new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) ==> new_takeWhile(x87, x88, x89, x90, x91)_>=_new_takeWhile10(Main.Pos(x87), x88, x89, x90, x91, x88)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x96, x97, x98, x99, x100) -> new_takeWhile10(Main.Pos(x96), x97, x98, x99, x100, x97), new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x96), x97, x98, x99, x100, x97)=new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) ==> new_takeWhile(x96, x97, x98, x99, x100)_>=_new_takeWhile10(Main.Pos(x96), x97, x98, x99, x100, x97)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x104, x105, x106, x107, x108) -> new_takeWhile10(Main.Pos(x104), x105, x106, x107, x108, x105), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x104), x105, x106, x107, x108, x105)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) ==> new_takeWhile(x104, x105, x106, x107, x108)_>=_new_takeWhile10(Main.Pos(x104), x105, x106, x107, x108, x105)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x113, x114, x115, x116, x117) -> new_takeWhile10(Main.Pos(x113), x114, x115, x116, x117, x114), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x113), x114, x115, x116, x117, x114)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile(x113, x114, x115, x116, x117)_>=_new_takeWhile10(Main.Pos(x113), x114, x115, x116, x117, x114)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x121, x122, x123, x124, x125) -> new_takeWhile10(Main.Pos(x121), x122, x123, x124, x125, x122), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, new_not0(x127, x126)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x121), x122, x123, x124, x125, x122)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) ==> new_takeWhile(x121, x122, x123, x124, x125)_>=_new_takeWhile10(Main.Pos(x121), x122, x123, x124, x125, x122)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x131, x132, x133, x134, x135) -> new_takeWhile10(Main.Pos(x131), x132, x133, x134, x135, x132), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x131), x132, x133, x134, x135, x132)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) ==> new_takeWhile(x131, x132, x133, x134, x135)_>=_new_takeWhile10(Main.Pos(x131), x132, x133, x134, x135, x132)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *We consider the chain new_takeWhile(x140, x141, x142, x143, x144) -> new_takeWhile10(Main.Pos(x140), x141, x142, x143, x144, x141), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, MyTrue) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile10(Main.Pos(x140), x141, x142, x143, x144, x141)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile(x140, x141, x142, x143, x144)_>=_new_takeWhile10(Main.Pos(x140), x141, x142, x143, x144, x141)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue), new_takeWhile1(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile(x151, x155, x153, x154, new_psMyInt(x153, x154, x155)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)=new_takeWhile1(x151, x152, x153, x154, x155, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue), new_takeWhile1(x190, x191, x192, x193, x194, MyTrue) -> new_takeWhile(x190, x194, x192, x193, new_psMyInt(x192, x193, x194)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)=new_takeWhile1(x190, x191, x192, x193, x194, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue), new_takeWhile1(x239, x240, x241, x242, x243, MyTrue) -> new_takeWhile(x239, x243, x241, x242, new_psMyInt(x241, x242, x243)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)=new_takeWhile1(x239, x240, x241, x242, x243, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue), new_takeWhile1(x287, x288, x289, x290, x291, MyTrue) -> new_takeWhile(x287, x291, x289, x290, new_psMyInt(x289, x290, x291)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)=new_takeWhile1(x287, x288, x289, x290, x291, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue), new_takeWhile1(x326, x327, x328, x329, x330, MyTrue) -> new_takeWhile(x326, x330, x328, x329, new_psMyInt(x328, x329, x330)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)=new_takeWhile1(x326, x327, x328, x329, x330, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue), new_takeWhile1(x374, x375, x376, x377, x378, MyTrue) -> new_takeWhile(x374, x378, x376, x377, new_psMyInt(x376, x377, x378)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)=new_takeWhile1(x374, x375, x376, x377, x378, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409)), new_takeWhile1(x414, x415, x416, x417, x418, MyTrue) -> new_takeWhile(x414, x418, x416, x417, new_psMyInt(x416, x417, x418)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))=new_takeWhile1(x414, x415, x416, x417, x418, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_not0(x410, x409)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x410, x409)=MyTrue which results in the following new constraints: 291.92/213.10 291.92/213.10 (3) (new_not1=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.10 291.92/213.10 (4) (new_not3=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.10 291.92/213.10 (5) (new_not0(x559, x558)=MyTrue & (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) 291.92/213.10 291.92/213.10 (6) (new_not2=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.10 291.92/213.10 (7) (new_not5=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.10 291.92/213.10 (8) (new_not4=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) with sigma = [x560 / x411, x561 / x412, x562 / x413] which results in the following new constraint: 291.92/213.10 291.92/213.10 (9) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.10 291.92/213.10 (10) (new_not5=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (11) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (12) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (13) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue), new_takeWhile1(x473, x474, x475, x476, x477, MyTrue) -> new_takeWhile(x473, x477, x475, x476, new_psMyInt(x475, x476, x477)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)=new_takeWhile1(x473, x474, x475, x476, x477, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.10 *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue), new_takeWhile1(x521, x522, x523, x524, x525, MyTrue) -> new_takeWhile(x521, x525, x523, x524, new_psMyInt(x523, x524, x525)) which results in the following constraint: 291.92/213.10 291.92/213.10 (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)=new_takeWhile1(x521, x522, x523, x524, x525, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.10 291.92/213.10 (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.10 291.92/213.10 *new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 291.92/213.10 *(new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.10 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 291.92/213.10 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. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (314) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (315) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (316) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (317) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (318) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (319) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (320) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (321) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (322) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (323) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (324) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (325) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (326) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (327) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (328) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (329) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (330) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (331) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (332) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (333) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (334) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (335) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (336) TransformationProof (EQUIVALENT) 291.92/213.10 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (337) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (338) TransformationProof (EQUIVALENT) 291.92/213.10 By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))),new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5)))) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (339) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (340) TransformationProof (EQUIVALENT) 291.92/213.10 By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (341) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (342) TransformationProof (EQUIVALENT) 291.92/213.10 By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (343) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (344) TransformationProof (EQUIVALENT) 291.92/213.10 By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.10 291.92/213.10 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (345) 291.92/213.10 Obligation: 291.92/213.10 Q DP problem: 291.92/213.10 The TRS P consists of the following rules: 291.92/213.10 291.92/213.10 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.10 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.10 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.10 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.10 291.92/213.10 The TRS R consists of the following rules: 291.92/213.10 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.10 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.10 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.10 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.10 new_not4 -> MyFalse 291.92/213.10 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.10 new_not3 -> new_not4 291.92/213.10 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.10 new_not5 -> MyTrue 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.10 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.10 new_not1 -> new_not5 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.10 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.10 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.10 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.10 new_not2 -> new_not5 291.92/213.10 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.10 291.92/213.10 The set Q consists of the following terms: 291.92/213.10 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.10 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.10 new_not2 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.10 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.10 new_not3 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_not4 291.92/213.10 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.10 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.10 new_not1 291.92/213.10 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.10 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.10 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.10 new_not0(Main.Zero, Main.Zero) 291.92/213.10 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.10 new_not5 291.92/213.10 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.10 291.92/213.10 We have to consider all minimal (P,Q,R)-chains. 291.92/213.10 ---------------------------------------- 291.92/213.10 291.92/213.10 (346) TransformationProof (EQUIVALENT) 291.92/213.10 By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.10 291.92/213.10 (new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (347) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (348) TransformationProof (EQUIVALENT) 291.92/213.11 By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (349) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (350) QDPOrderProof (EQUIVALENT) 291.92/213.11 We use the reduction pair processor [LPAR04,JAR06]. 291.92/213.11 291.92/213.11 291.92/213.11 The following pairs can be oriented strictly and are deleted. 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 The remaining pairs can at least be oriented weakly. 291.92/213.11 Used ordering: Polynomial interpretation [POLO]: 291.92/213.11 291.92/213.11 POL(Main.Neg(x_1)) = x_1 291.92/213.11 POL(Main.Pos(x_1)) = 0 291.92/213.11 POL(Main.Succ(x_1)) = 0 291.92/213.11 POL(Main.Zero) = 1 291.92/213.11 POL(MyFalse) = 0 291.92/213.11 POL(MyTrue) = 0 291.92/213.11 POL(new_not0(x_1, x_2)) = 0 291.92/213.11 POL(new_not1) = 0 291.92/213.11 POL(new_not2) = 0 291.92/213.11 POL(new_not3) = 0 291.92/213.11 POL(new_not4) = 0 291.92/213.11 POL(new_not5) = 0 291.92/213.11 POL(new_primMinusNat0(x_1, x_2)) = 0 291.92/213.11 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 291.92/213.11 POL(new_primPlusInt1(x_1, x_2)) = 0 291.92/213.11 POL(new_primPlusInt2(x_1, x_2)) = x_1 291.92/213.11 POL(new_primPlusNat0(x_1, x_2)) = x_1 291.92/213.11 POL(new_psMyInt(x_1, x_2, x_3)) = 0 291.92/213.11 POL(new_takeWhile0(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 291.92/213.11 POL(new_takeWhile10(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 291.92/213.11 POL(new_takeWhile11(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 291.92/213.11 291.92/213.11 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.92/213.11 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (351) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (352) MNOCProof (EQUIVALENT) 291.92/213.11 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (353) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 Q is empty. 291.92/213.11 We have to consider all (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (354) InductionCalculusProof (EQUIVALENT) 291.92/213.11 Note that final constraints are written in bold face. 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 For Pair new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: 291.92/213.11 *We consider the chain new_takeWhile11(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile0(x10, x11, x12, x13, x14) -> new_takeWhile10(Main.Neg(x10), x11, x12, x13, x14, x11) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile0(x10, x11, x12, x13, x14) ==> new_takeWhile11(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile11(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 For Pair new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) the following chains were created: 291.92/213.11 *We consider the chain new_takeWhile0(x45, x46, x47, x48, x49) -> new_takeWhile10(Main.Neg(x45), x46, x47, x48, x49, x46), new_takeWhile10(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) -> new_takeWhile11(x50, Main.Neg(Main.Succ(x51)), x52, x53, x54, new_not0(x50, Main.Succ(x51))) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile10(Main.Neg(x45), x46, x47, x48, x49, x46)=new_takeWhile10(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) ==> new_takeWhile0(x45, x46, x47, x48, x49)_>=_new_takeWhile10(Main.Neg(x45), x46, x47, x48, x49, x46)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile0(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile10(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *We consider the chain new_takeWhile0(x55, x56, x57, x58, x59) -> new_takeWhile10(Main.Neg(x55), x56, x57, x58, x59, x56), new_takeWhile10(Main.Neg(x60), Main.Pos(Main.Succ(x61)), x62, x63, x64, Main.Pos(Main.Succ(x61))) -> new_takeWhile11(x60, Main.Pos(Main.Succ(x61)), x62, x63, x64, MyTrue) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile10(Main.Neg(x55), x56, x57, x58, x59, x56)=new_takeWhile10(Main.Neg(x60), Main.Pos(Main.Succ(x61)), x62, x63, x64, Main.Pos(Main.Succ(x61))) ==> new_takeWhile0(x55, x56, x57, x58, x59)_>=_new_takeWhile10(Main.Neg(x55), x56, x57, x58, x59, x56)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile0(x55, Main.Pos(Main.Succ(x61)), x57, x58, x59)_>=_new_takeWhile10(Main.Neg(x55), Main.Pos(Main.Succ(x61)), x57, x58, x59, Main.Pos(Main.Succ(x61)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *We consider the chain new_takeWhile0(x65, x66, x67, x68, x69) -> new_takeWhile10(Main.Neg(x65), x66, x67, x68, x69, x66), new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x70, x71, x72, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x70, x71, x72, MyTrue) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile10(Main.Neg(x65), x66, x67, x68, x69, x66)=new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x70, x71, x72, Main.Pos(Main.Zero)) ==> new_takeWhile0(x65, x66, x67, x68, x69)_>=_new_takeWhile10(Main.Neg(x65), x66, x67, x68, x69, x66)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x67, x68, x69)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x67, x68, x69, Main.Pos(Main.Zero))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *We consider the chain new_takeWhile0(x73, x74, x75, x76, x77) -> new_takeWhile10(Main.Neg(x73), x74, x75, x76, x77, x74), new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x78), Main.Pos(Main.Zero), x79, x80, x81, MyTrue) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile10(Main.Neg(x73), x74, x75, x76, x77, x74)=new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) ==> new_takeWhile0(x73, x74, x75, x76, x77)_>=_new_takeWhile10(Main.Neg(x73), x74, x75, x76, x77, x74)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile0(Main.Succ(x78), Main.Pos(Main.Zero), x75, x76, x77)_>=_new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 For Pair new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) the following chains were created: 291.92/213.11 *We consider the chain new_takeWhile10(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83))) -> new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83))), new_takeWhile11(x87, x88, x89, x90, x91, MyTrue) -> new_takeWhile0(x87, x91, x89, x90, new_psMyInt(x89, x90, x91)) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))=new_takeWhile11(x87, x88, x89, x90, x91, MyTrue) ==> new_takeWhile10(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (Main.Succ(x83)=x204 & new_not0(x82, x204)=MyTrue ==> new_takeWhile10(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x82, x204)=MyTrue which results in the following new constraints: 291.92/213.11 291.92/213.11 (3) (new_not1=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile10(Main.Neg(Main.Succ(x205)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Succ(x205), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x205), Main.Succ(x83)))) 291.92/213.11 291.92/213.11 (4) (new_not3=MyTrue & Main.Succ(x83)=Main.Succ(x206) ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 (5) (new_not0(x208, x207)=MyTrue & Main.Succ(x83)=Main.Succ(x207) & (\/x209,x210,x211,x212:new_not0(x208, x207)=MyTrue & Main.Succ(x209)=x207 ==> new_takeWhile10(Main.Neg(x208), Main.Neg(Main.Succ(x209)), x210, x211, x212, Main.Neg(Main.Succ(x209)))_>=_new_takeWhile11(x208, Main.Neg(Main.Succ(x209)), x210, x211, x212, new_not0(x208, Main.Succ(x209)))) ==> new_takeWhile10(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Succ(x208), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x83)))) 291.92/213.11 291.92/213.11 (6) (new_not2=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (7) (new_not3=MyTrue ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (8) (new_not0(x208, x207)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x207)), x84, x85, x86, Main.Neg(Main.Succ(x207)))_>=_new_takeWhile11(Main.Succ(x208), Main.Neg(Main.Succ(x207)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x207)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.11 291.92/213.11 (9) (new_not4=MyTrue ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (10) (new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x208, x207)=MyTrue which results in the following new constraints: 291.92/213.11 291.92/213.11 (11) (new_not1=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) 291.92/213.11 291.92/213.11 (12) (new_not3=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) 291.92/213.11 291.92/213.11 (13) (new_not0(x216, x215)=MyTrue & (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile11(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) 291.92/213.11 291.92/213.11 (14) (new_not2=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (11) using rule (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (15) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (16) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) with sigma = [x217 / x84, x218 / x85, x219 / x86] which results in the following new constraint: 291.92/213.11 291.92/213.11 (17) (new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile11(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (18) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 For Pair new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.11 *We consider the chain new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118))) -> new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue), new_takeWhile11(x122, x123, x124, x125, x126, MyTrue) -> new_takeWhile0(x122, x126, x124, x125, new_psMyInt(x124, x125, x126)) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)=new_takeWhile11(x122, x123, x124, x125, x126, MyTrue) ==> new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118)))_>=_new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118)))_>=_new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 For Pair new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.11 *We consider the chain new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue), new_takeWhile11(x155, x156, x157, x158, x159, MyTrue) -> new_takeWhile0(x155, x159, x157, x158, new_psMyInt(x157, x158, x159)) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)=new_takeWhile11(x155, x156, x157, x158, x159, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 For Pair new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.11 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue), new_takeWhile11(x179, x180, x181, x182, x183, MyTrue) -> new_takeWhile0(x179, x183, x181, x182, new_psMyInt(x181, x182, x183)) which results in the following constraint: 291.92/213.11 291.92/213.11 (1) (new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)=new_takeWhile11(x179, x180, x181, x182, x183, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.11 291.92/213.11 (2) (new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.11 291.92/213.11 *new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 291.92/213.11 *(new_takeWhile11(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 291.92/213.11 *(new_takeWhile0(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile10(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile0(x55, Main.Pos(Main.Succ(x61)), x57, x58, x59)_>=_new_takeWhile10(Main.Neg(x55), Main.Pos(Main.Succ(x61)), x57, x58, x59, Main.Pos(Main.Succ(x61)))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x67, x68, x69)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x67, x68, x69, Main.Pos(Main.Zero))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile0(Main.Succ(x78), Main.Pos(Main.Zero), x75, x76, x77)_>=_new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile11(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) 291.92/213.11 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118)))_>=_new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 *new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 *(new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 291.92/213.11 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. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (355) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (356) TransformationProof (EQUIVALENT) 291.92/213.11 By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1))) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (357) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (358) DependencyGraphProof (EQUIVALENT) 291.92/213.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (359) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (360) TransformationProof (EQUIVALENT) 291.92/213.11 By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (361) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (362) DependencyGraphProof (EQUIVALENT) 291.92/213.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (363) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (364) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (365) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (366) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (367) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (368) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (369) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (370) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (371) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (372) TransformationProof (EQUIVALENT) 291.92/213.11 By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (373) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (374) DependencyGraphProof (EQUIVALENT) 291.92/213.11 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (375) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (376) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (377) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (378) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (379) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (380) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (381) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (382) TransformationProof (EQUIVALENT) 291.92/213.11 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (383) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.11 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.11 new_not3 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_not4 291.92/213.11 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_not1 291.92/213.11 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.11 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) 291.92/213.11 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.11 new_not5 291.92/213.11 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.11 291.92/213.11 We have to consider all minimal (P,Q,R)-chains. 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (384) TransformationProof (EQUIVALENT) 291.92/213.11 By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.11 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3)) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.11 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) 291.92/213.11 291.92/213.11 291.92/213.11 ---------------------------------------- 291.92/213.11 291.92/213.11 (385) 291.92/213.11 Obligation: 291.92/213.11 Q DP problem: 291.92/213.11 The TRS P consists of the following rules: 291.92/213.11 291.92/213.11 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.11 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.11 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.11 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.11 291.92/213.11 The TRS R consists of the following rules: 291.92/213.11 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.11 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.11 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.11 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.11 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.11 new_not4 -> MyFalse 291.92/213.11 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.11 new_not3 -> new_not4 291.92/213.11 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.11 new_not5 -> MyTrue 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.11 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.11 new_not1 -> new_not5 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.11 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.11 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.11 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.11 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.11 new_not2 -> new_not5 291.92/213.11 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.11 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.11 291.92/213.11 The set Q consists of the following terms: 291.92/213.11 291.92/213.11 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.11 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.11 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.11 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.11 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (386) DependencyGraphProof (EQUIVALENT) 291.92/213.12 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (387) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (388) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (389) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (390) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (391) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (392) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (393) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (394) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (395) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (396) MNOCProof (EQUIVALENT) 291.92/213.12 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (397) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 Q is empty. 291.92/213.12 We have to consider all (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (398) InductionCalculusProof (EQUIVALENT) 291.92/213.12 Note that final constraints are written in bold face. 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile0(x5, x6, x7, x8, x9) -> new_takeWhile10(Main.Neg(x5), x6, x7, x8, x9, x6), new_takeWhile10(Main.Neg(x10), Main.Pos(Main.Succ(x11)), x12, x13, x14, Main.Pos(Main.Succ(x11))) -> new_takeWhile11(x10, Main.Pos(Main.Succ(x11)), x12, x13, x14, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x5), x6, x7, x8, x9, x6)=new_takeWhile10(Main.Neg(x10), Main.Pos(Main.Succ(x11)), x12, x13, x14, Main.Pos(Main.Succ(x11))) ==> new_takeWhile0(x5, x6, x7, x8, x9)_>=_new_takeWhile10(Main.Neg(x5), x6, x7, x8, x9, x6)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(x5, Main.Pos(Main.Succ(x11)), x7, x8, x9)_>=_new_takeWhile10(Main.Neg(x5), Main.Pos(Main.Succ(x11)), x7, x8, x9, Main.Pos(Main.Succ(x11)))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x20, x21, x22, x23, x24) -> new_takeWhile10(Main.Neg(x20), x21, x22, x23, x24, x21), new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x25, x26, x27, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x25, x26, x27, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x20), x21, x22, x23, x24, x21)=new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x25, x26, x27, Main.Pos(Main.Zero)) ==> new_takeWhile0(x20, x21, x22, x23, x24)_>=_new_takeWhile10(Main.Neg(x20), x21, x22, x23, x24, x21)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x22, x23, x24)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x22, x23, x24, Main.Pos(Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x28, x29, x30, x31, x32) -> new_takeWhile10(Main.Neg(x28), x29, x30, x31, x32, x29), new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x33), Main.Pos(Main.Zero), x34, x35, x36, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x28), x29, x30, x31, x32, x29)=new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) ==> new_takeWhile0(x28, x29, x30, x31, x32)_>=_new_takeWhile10(Main.Neg(x28), x29, x30, x31, x32, x29)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(x33), Main.Pos(Main.Zero), x30, x31, x32)_>=_new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x30, x31, x32, Main.Pos(Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x37, x38, x39, x40, x41) -> new_takeWhile10(Main.Neg(x37), x38, x39, x40, x41, x38), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x37), x38, x39, x40, x41, x38)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile0(x37, x38, x39, x40, x41)_>=_new_takeWhile10(Main.Neg(x37), x38, x39, x40, x41, x38)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x46, x47, x48, x49, x50) -> new_takeWhile10(Main.Neg(x46), x47, x48, x49, x50, x47), new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x46), x47, x48, x49, x50, x47)=new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile0(x46, x47, x48, x49, x50)_>=_new_takeWhile10(Main.Neg(x46), x47, x48, x49, x50, x47)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x54, x55, x56, x57, x58) -> new_takeWhile10(Main.Neg(x54), x55, x56, x57, x58, x55), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x54), x55, x56, x57, x58, x55)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile0(x54, x55, x56, x57, x58)_>=_new_takeWhile10(Main.Neg(x54), x55, x56, x57, x58, x55)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x63, x64, x65, x66, x67) -> new_takeWhile10(Main.Neg(x63), x64, x65, x66, x67, x64), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x63), x64, x65, x66, x67, x64)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile0(x63, x64, x65, x66, x67)_>=_new_takeWhile10(Main.Neg(x63), x64, x65, x66, x67, x64)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x71, x72, x73, x74, x75) -> new_takeWhile10(Main.Neg(x71), x72, x73, x74, x75, x72), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, new_not0(x76, x77)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x71), x72, x73, x74, x75, x72)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) ==> new_takeWhile0(x71, x72, x73, x74, x75)_>=_new_takeWhile10(Main.Neg(x71), x72, x73, x74, x75, x72)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x81, x82, x83, x84, x85) -> new_takeWhile10(Main.Neg(x81), x82, x83, x84, x85, x82), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x81), x82, x83, x84, x85, x82)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile0(x81, x82, x83, x84, x85)_>=_new_takeWhile10(Main.Neg(x81), x82, x83, x84, x85, x82)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *We consider the chain new_takeWhile0(x90, x91, x92, x93, x94) -> new_takeWhile10(Main.Neg(x90), x91, x92, x93, x94, x91), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, MyTrue) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile10(Main.Neg(x90), x91, x92, x93, x94, x91)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile0(x90, x91, x92, x93, x94)_>=_new_takeWhile10(Main.Neg(x90), x91, x92, x93, x94, x91)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109))) -> new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue), new_takeWhile11(x113, x114, x115, x116, x117, MyTrue) -> new_takeWhile0(x113, x117, x115, x116, new_psMyInt(x115, x116, x117)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)=new_takeWhile11(x113, x114, x115, x116, x117, MyTrue) ==> new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109)))_>=_new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109)))_>=_new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile11(x163, x164, x165, x166, x167, MyTrue) -> new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167)), new_takeWhile0(x168, x169, x170, x171, x172) -> new_takeWhile10(Main.Neg(x168), x169, x170, x171, x172, x169) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))=new_takeWhile0(x168, x169, x170, x171, x172) ==> new_takeWhile11(x163, x164, x165, x166, x167, MyTrue)_>=_new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile11(x163, x164, x165, x166, x167, MyTrue)_>=_new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue), new_takeWhile11(x237, x238, x239, x240, x241, MyTrue) -> new_takeWhile0(x237, x241, x239, x240, new_psMyInt(x239, x240, x241)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)=new_takeWhile11(x237, x238, x239, x240, x241, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue), new_takeWhile11(x281, x282, x283, x284, x285, MyTrue) -> new_takeWhile0(x281, x285, x283, x284, new_psMyInt(x283, x284, x285)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)=new_takeWhile11(x281, x282, x283, x284, x285, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue), new_takeWhile11(x334, x335, x336, x337, x338, MyTrue) -> new_takeWhile0(x334, x338, x336, x337, new_psMyInt(x336, x337, x338)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)=new_takeWhile11(x334, x335, x336, x337, x338, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue), new_takeWhile11(x384, x385, x386, x387, x388, MyTrue) -> new_takeWhile0(x384, x388, x386, x387, new_psMyInt(x386, x387, x388)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)=new_takeWhile11(x384, x385, x386, x387, x388, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue), new_takeWhile11(x428, x429, x430, x431, x432, MyTrue) -> new_takeWhile0(x428, x432, x430, x431, new_psMyInt(x430, x431, x432)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)=new_takeWhile11(x428, x429, x430, x431, x432, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue), new_takeWhile11(x478, x479, x480, x481, x482, MyTrue) -> new_takeWhile0(x478, x482, x480, x481, new_psMyInt(x480, x481, x482)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)=new_takeWhile11(x478, x479, x480, x481, x482, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521)), new_takeWhile11(x525, x526, x527, x528, x529, MyTrue) -> new_takeWhile0(x525, x529, x527, x528, new_psMyInt(x527, x528, x529)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))=new_takeWhile11(x525, x526, x527, x528, x529, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_not0(x520, x521)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x520, x521)=MyTrue which results in the following new constraints: 291.92/213.12 291.92/213.12 (3) (new_not1=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.12 291.92/213.12 (4) (new_not3=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.12 291.92/213.12 (5) (new_not0(x672, x671)=MyTrue & (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) 291.92/213.12 291.92/213.12 (6) (new_not2=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.12 291.92/213.12 (7) (new_not5=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.12 291.92/213.12 (8) (new_not4=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) with sigma = [x673 / x522, x674 / x523, x675 / x524] which results in the following new constraint: 291.92/213.12 291.92/213.12 (9) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.12 291.92/213.12 (10) (new_not5=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (11) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (12) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (13) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue), new_takeWhile11(x587, x588, x589, x590, x591, MyTrue) -> new_takeWhile0(x587, x591, x589, x590, new_psMyInt(x589, x590, x591)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)=new_takeWhile11(x587, x588, x589, x590, x591, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.12 *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue), new_takeWhile11(x637, x638, x639, x640, x641, MyTrue) -> new_takeWhile0(x637, x641, x639, x640, new_psMyInt(x639, x640, x641)) which results in the following constraint: 291.92/213.12 291.92/213.12 (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)=new_takeWhile11(x637, x638, x639, x640, x641, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.12 291.92/213.12 (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.12 291.92/213.12 *new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 291.92/213.12 *(new_takeWhile0(x5, Main.Pos(Main.Succ(x11)), x7, x8, x9)_>=_new_takeWhile10(Main.Neg(x5), Main.Pos(Main.Succ(x11)), x7, x8, x9, Main.Pos(Main.Succ(x11)))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x22, x23, x24)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x22, x23, x24, Main.Pos(Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(x33), Main.Pos(Main.Zero), x30, x31, x32)_>=_new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x30, x31, x32, Main.Pos(Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109)))_>=_new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 291.92/213.12 *(new_takeWhile11(x163, x164, x165, x166, x167, MyTrue)_>=_new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.12 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 291.92/213.12 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. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (399) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) 291.92/213.12 new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt(x0, Main.Neg(x1), x2) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_psMyInt(x0, Main.Pos(x1), x2) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (400) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) 291.92/213.12 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Pos(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Zero, Main.Succ(wy73500))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not3) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) 291.92/213.12 new_takeWhile17(Main.Pos(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not3) 291.92/213.12 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (401) DependencyGraphProof (EQUIVALENT) 291.92/213.12 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (402) 291.92/213.12 Complex Obligation (AND) 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (403) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (404) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (405) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (406) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (407) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (408) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (409) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (410) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (411) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (412) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (413) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (414) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (415) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (416) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (417) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.12 291.92/213.12 The TRS R consists of the following rules: 291.92/213.12 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.12 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.12 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.12 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.12 new_not4 -> MyFalse 291.92/213.12 new_not3 -> new_not4 291.92/213.12 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.12 new_not5 -> MyTrue 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.12 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.12 new_not1 -> new_not5 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.12 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.12 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.12 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.12 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.12 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.12 new_not2 -> new_not5 291.92/213.12 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.12 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.12 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.12 291.92/213.12 The set Q consists of the following terms: 291.92/213.12 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.12 new_not2 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.12 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.12 new_not3 291.92/213.12 new_primPlusNat2(x0, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_not4 291.92/213.12 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.12 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.12 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.12 new_not1 291.92/213.12 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.12 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.12 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.12 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.12 new_not0(Main.Zero, Main.Zero) 291.92/213.12 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.12 new_not5 291.92/213.12 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.12 291.92/213.12 We have to consider all minimal (P,Q,R)-chains. 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (418) TransformationProof (EQUIVALENT) 291.92/213.12 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.12 291.92/213.12 (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.12 291.92/213.12 291.92/213.12 ---------------------------------------- 291.92/213.12 291.92/213.12 (419) 291.92/213.12 Obligation: 291.92/213.12 Q DP problem: 291.92/213.12 The TRS P consists of the following rules: 291.92/213.12 291.92/213.12 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.12 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.12 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.12 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (420) TransformationProof (EQUIVALENT) 291.92/213.13 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (421) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (422) TransformationProof (EQUIVALENT) 291.92/213.13 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (423) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (424) TransformationProof (EQUIVALENT) 291.92/213.13 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (425) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (426) TransformationProof (EQUIVALENT) 291.92/213.13 By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))),new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5)))) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (427) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (428) TransformationProof (EQUIVALENT) 291.92/213.13 By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (429) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (430) TransformationProof (EQUIVALENT) 291.92/213.13 By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (431) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (432) TransformationProof (EQUIVALENT) 291.92/213.13 By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (433) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (434) TransformationProof (EQUIVALENT) 291.92/213.13 By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (435) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (436) TransformationProof (EQUIVALENT) 291.92/213.13 By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (437) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (438) QDPOrderProof (EQUIVALENT) 291.92/213.13 We use the reduction pair processor [LPAR04,JAR06]. 291.92/213.13 291.92/213.13 291.92/213.13 The following pairs can be oriented strictly and are deleted. 291.92/213.13 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 The remaining pairs can at least be oriented weakly. 291.92/213.13 Used ordering: Polynomial interpretation [POLO]: 291.92/213.13 291.92/213.13 POL(Main.Neg(x_1)) = x_1 291.92/213.13 POL(Main.Pos(x_1)) = 0 291.92/213.13 POL(Main.Succ(x_1)) = 0 291.92/213.13 POL(Main.Zero) = 1 291.92/213.13 POL(MyFalse) = 0 291.92/213.13 POL(MyTrue) = 1 291.92/213.13 POL(new_not0(x_1, x_2)) = 1 291.92/213.13 POL(new_not1) = 1 291.92/213.13 POL(new_not2) = 1 291.92/213.13 POL(new_not3) = 1 291.92/213.13 POL(new_not4) = 0 291.92/213.13 POL(new_not5) = 1 291.92/213.13 POL(new_primMinusNat0(x_1, x_2)) = 0 291.92/213.13 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 291.92/213.13 POL(new_primPlusInt1(x_1, x_2)) = 0 291.92/213.13 POL(new_primPlusInt2(x_1, x_2)) = x_1 291.92/213.13 POL(new_primPlusNat0(x_1, x_2)) = x_1 291.92/213.13 POL(new_primPlusNat2(x_1, x_2)) = x_1 291.92/213.13 POL(new_psMyInt2(x_1, x_2, x_3)) = 0 291.92/213.13 POL(new_takeWhile17(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_3 + x_4 + x_5 + x_6 291.92/213.13 POL(new_takeWhile18(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 291.92/213.13 POL(new_takeWhile7(x_1, x_2, x_3, x_4, x_5)) = 1 + x_2 + x_3 + x_4 + x_5 291.92/213.13 291.92/213.13 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.92/213.13 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_not2 -> new_not5 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (439) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (440) MNOCProof (EQUIVALENT) 291.92/213.13 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (441) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 Q is empty. 291.92/213.13 We have to consider all (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (442) InductionCalculusProof (EQUIVALENT) 291.92/213.13 Note that final constraints are written in bold face. 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 For Pair new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: 291.92/213.13 *We consider the chain new_takeWhile18(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile7(x10, x11, x12, x13, x14) -> new_takeWhile17(Main.Neg(x10), x11, x12, x13, x14, x11) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile7(x10, x11, x12, x13, x14) ==> new_takeWhile18(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile18(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 For Pair new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) the following chains were created: 291.92/213.13 *We consider the chain new_takeWhile7(x45, x46, x47, x48, x49) -> new_takeWhile17(Main.Neg(x45), x46, x47, x48, x49, x46), new_takeWhile17(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) -> new_takeWhile18(x50, Main.Neg(Main.Succ(x51)), x52, x53, x54, new_not0(x50, Main.Succ(x51))) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile17(Main.Neg(x45), x46, x47, x48, x49, x46)=new_takeWhile17(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) ==> new_takeWhile7(x45, x46, x47, x48, x49)_>=_new_takeWhile17(Main.Neg(x45), x46, x47, x48, x49, x46)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile7(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile17(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *We consider the chain new_takeWhile7(x55, x56, x57, x58, x59) -> new_takeWhile17(Main.Neg(x55), x56, x57, x58, x59, x56), new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x61, x62, x63, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x60), Main.Pos(Main.Zero), x61, x62, x63, MyTrue) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile17(Main.Neg(x55), x56, x57, x58, x59, x56)=new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x61, x62, x63, Main.Pos(Main.Zero)) ==> new_takeWhile7(x55, x56, x57, x58, x59)_>=_new_takeWhile17(Main.Neg(x55), x56, x57, x58, x59, x56)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile7(Main.Succ(x60), Main.Pos(Main.Zero), x57, x58, x59)_>=_new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x57, x58, x59, Main.Pos(Main.Zero))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *We consider the chain new_takeWhile7(x64, x65, x66, x67, x68) -> new_takeWhile17(Main.Neg(x64), x65, x66, x67, x68, x65), new_takeWhile17(Main.Neg(x69), Main.Pos(Main.Succ(x70)), x71, x72, x73, Main.Pos(Main.Succ(x70))) -> new_takeWhile18(x69, Main.Pos(Main.Succ(x70)), x71, x72, x73, MyTrue) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile17(Main.Neg(x64), x65, x66, x67, x68, x65)=new_takeWhile17(Main.Neg(x69), Main.Pos(Main.Succ(x70)), x71, x72, x73, Main.Pos(Main.Succ(x70))) ==> new_takeWhile7(x64, x65, x66, x67, x68)_>=_new_takeWhile17(Main.Neg(x64), x65, x66, x67, x68, x65)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile7(x64, Main.Pos(Main.Succ(x70)), x66, x67, x68)_>=_new_takeWhile17(Main.Neg(x64), Main.Pos(Main.Succ(x70)), x66, x67, x68, Main.Pos(Main.Succ(x70)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *We consider the chain new_takeWhile7(x74, x75, x76, x77, x78) -> new_takeWhile17(Main.Neg(x74), x75, x76, x77, x78, x75), new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x79, x80, x81, MyTrue) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile17(Main.Neg(x74), x75, x76, x77, x78, x75)=new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) ==> new_takeWhile7(x74, x75, x76, x77, x78)_>=_new_takeWhile17(Main.Neg(x74), x75, x76, x77, x78, x75)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x76, x77, x78)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x76, x77, x78, Main.Pos(Main.Zero))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 For Pair new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) the following chains were created: 291.92/213.13 *We consider the chain new_takeWhile17(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83))) -> new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83))), new_takeWhile18(x87, x88, x89, x90, x91, MyTrue) -> new_takeWhile7(x87, x91, x89, x90, new_psMyInt2(x89, x90, x91)) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))=new_takeWhile18(x87, x88, x89, x90, x91, MyTrue) ==> new_takeWhile17(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (Main.Succ(x83)=x204 & new_not0(x82, x204)=MyTrue ==> new_takeWhile17(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x82, x204)=MyTrue which results in the following new constraints: 291.92/213.13 291.92/213.13 (3) (new_not1=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile17(Main.Neg(Main.Succ(x205)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Succ(x205), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x205), Main.Succ(x83)))) 291.92/213.13 291.92/213.13 (4) (new_not3=MyTrue & Main.Succ(x83)=Main.Succ(x206) ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 (5) (new_not0(x208, x207)=MyTrue & Main.Succ(x83)=Main.Succ(x207) & (\/x209,x210,x211,x212:new_not0(x208, x207)=MyTrue & Main.Succ(x209)=x207 ==> new_takeWhile17(Main.Neg(x208), Main.Neg(Main.Succ(x209)), x210, x211, x212, Main.Neg(Main.Succ(x209)))_>=_new_takeWhile18(x208, Main.Neg(Main.Succ(x209)), x210, x211, x212, new_not0(x208, Main.Succ(x209)))) ==> new_takeWhile17(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Succ(x208), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x83)))) 291.92/213.13 291.92/213.13 (6) (new_not2=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (7) (new_not3=MyTrue ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (8) (new_not0(x208, x207)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x207)), x84, x85, x86, Main.Neg(Main.Succ(x207)))_>=_new_takeWhile18(Main.Succ(x208), Main.Neg(Main.Succ(x207)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x207)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.13 291.92/213.13 (9) (new_not4=MyTrue ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (10) (new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x208, x207)=MyTrue which results in the following new constraints: 291.92/213.13 291.92/213.13 (11) (new_not1=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) 291.92/213.13 291.92/213.13 (12) (new_not3=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) 291.92/213.13 291.92/213.13 (13) (new_not0(x216, x215)=MyTrue & (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile18(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) 291.92/213.13 291.92/213.13 (14) (new_not2=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (11) using rule (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (15) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (16) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) with sigma = [x217 / x84, x218 / x85, x219 / x86] which results in the following new constraint: 291.92/213.13 291.92/213.13 (17) (new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile18(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (18) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 For Pair new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.13 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue), new_takeWhile18(x121, x122, x123, x124, x125, MyTrue) -> new_takeWhile7(x121, x125, x123, x124, new_psMyInt2(x123, x124, x125)) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)=new_takeWhile18(x121, x122, x123, x124, x125, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 For Pair new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.13 *We consider the chain new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147))) -> new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue), new_takeWhile18(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155)) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)=new_takeWhile18(x151, x152, x153, x154, x155, MyTrue) ==> new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147)))_>=_new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147)))_>=_new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 For Pair new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.13 *We consider the chain new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue), new_takeWhile18(x184, x185, x186, x187, x188, MyTrue) -> new_takeWhile7(x184, x188, x186, x187, new_psMyInt2(x186, x187, x188)) which results in the following constraint: 291.92/213.13 291.92/213.13 (1) (new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)=new_takeWhile18(x184, x185, x186, x187, x188, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.13 291.92/213.13 (2) (new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.13 291.92/213.13 *new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 291.92/213.13 *(new_takeWhile18(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 291.92/213.13 *(new_takeWhile7(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile17(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile7(Main.Succ(x60), Main.Pos(Main.Zero), x57, x58, x59)_>=_new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x57, x58, x59, Main.Pos(Main.Zero))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile7(x64, Main.Pos(Main.Succ(x70)), x66, x67, x68)_>=_new_takeWhile17(Main.Neg(x64), Main.Pos(Main.Succ(x70)), x66, x67, x68, Main.Pos(Main.Succ(x70)))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x76, x77, x78)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x76, x77, x78, Main.Pos(Main.Zero))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile18(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) 291.92/213.13 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147)))_>=_new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 *new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 *(new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)) 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 291.92/213.13 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. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (443) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (444) TransformationProof (EQUIVALENT) 291.92/213.13 By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3)) 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1))) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (445) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (446) DependencyGraphProof (EQUIVALENT) 291.92/213.13 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (447) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (448) TransformationProof (EQUIVALENT) 291.92/213.13 By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1)) 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3)) 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (449) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (450) DependencyGraphProof (EQUIVALENT) 291.92/213.13 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (451) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (452) TransformationProof (EQUIVALENT) 291.92/213.13 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (453) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.13 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.13 new_not5 291.92/213.13 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 291.92/213.13 We have to consider all minimal (P,Q,R)-chains. 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (454) TransformationProof (EQUIVALENT) 291.92/213.13 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.13 291.92/213.13 (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.92/213.13 291.92/213.13 291.92/213.13 ---------------------------------------- 291.92/213.13 291.92/213.13 (455) 291.92/213.13 Obligation: 291.92/213.13 Q DP problem: 291.92/213.13 The TRS P consists of the following rules: 291.92/213.13 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.13 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.13 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.13 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.13 291.92/213.13 The TRS R consists of the following rules: 291.92/213.13 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.13 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.13 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.13 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.13 new_not4 -> MyFalse 291.92/213.13 new_not3 -> new_not4 291.92/213.13 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.13 new_not5 -> MyTrue 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.13 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.13 new_not1 -> new_not5 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.13 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.13 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.13 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.13 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.13 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.13 new_not2 -> new_not5 291.92/213.13 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.13 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.13 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.13 291.92/213.13 The set Q consists of the following terms: 291.92/213.13 291.92/213.13 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.13 new_not2 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.13 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.13 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.13 new_not3 291.92/213.13 new_primPlusNat2(x0, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.13 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_not4 291.92/213.13 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.13 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.13 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.13 new_not1 291.92/213.13 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (456) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (457) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (458) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (459) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (460) TransformationProof (EQUIVALENT) 291.92/213.14 By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1)) 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3)) 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (461) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (462) DependencyGraphProof (EQUIVALENT) 291.92/213.14 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (463) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (464) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (465) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (466) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (467) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (468) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (469) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (470) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (471) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (472) TransformationProof (EQUIVALENT) 291.92/213.14 By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1)) 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3)) 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (473) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (474) DependencyGraphProof (EQUIVALENT) 291.92/213.14 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (475) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (476) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (477) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (478) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (479) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (480) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (481) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (482) TransformationProof (EQUIVALENT) 291.92/213.14 By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.14 291.92/213.14 (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (483) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 The set Q consists of the following terms: 291.92/213.14 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.14 new_not2 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.14 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.14 new_not3 291.92/213.14 new_primPlusNat2(x0, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_not4 291.92/213.14 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.14 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.14 new_not1 291.92/213.14 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.14 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.14 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.14 new_not0(Main.Zero, Main.Zero) 291.92/213.14 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.14 new_not5 291.92/213.14 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.14 291.92/213.14 We have to consider all minimal (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (484) MNOCProof (EQUIVALENT) 291.92/213.14 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (485) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.14 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.14 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.14 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.14 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.14 new_not2 -> new_not5 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.14 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.14 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.14 291.92/213.14 Q is empty. 291.92/213.14 We have to consider all (P,Q,R)-chains. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (486) InductionCalculusProof (EQUIVALENT) 291.92/213.14 Note that final constraints are written in bold face. 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile7(x5, x6, x7, x8, x9) -> new_takeWhile17(Main.Neg(x5), x6, x7, x8, x9, x6), new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x11, x12, x13, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x10), Main.Pos(Main.Zero), x11, x12, x13, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x5), x6, x7, x8, x9, x6)=new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x11, x12, x13, Main.Pos(Main.Zero)) ==> new_takeWhile7(x5, x6, x7, x8, x9)_>=_new_takeWhile17(Main.Neg(x5), x6, x7, x8, x9, x6)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(x10), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x7, x8, x9, Main.Pos(Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x19, x20, x21, x22, x23) -> new_takeWhile17(Main.Neg(x19), x20, x21, x22, x23, x20), new_takeWhile17(Main.Neg(x24), Main.Pos(Main.Succ(x25)), x26, x27, x28, Main.Pos(Main.Succ(x25))) -> new_takeWhile18(x24, Main.Pos(Main.Succ(x25)), x26, x27, x28, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x19), x20, x21, x22, x23, x20)=new_takeWhile17(Main.Neg(x24), Main.Pos(Main.Succ(x25)), x26, x27, x28, Main.Pos(Main.Succ(x25))) ==> new_takeWhile7(x19, x20, x21, x22, x23)_>=_new_takeWhile17(Main.Neg(x19), x20, x21, x22, x23, x20)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(x19, Main.Pos(Main.Succ(x25)), x21, x22, x23)_>=_new_takeWhile17(Main.Neg(x19), Main.Pos(Main.Succ(x25)), x21, x22, x23, Main.Pos(Main.Succ(x25)))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x29, x30, x31, x32, x33) -> new_takeWhile17(Main.Neg(x29), x30, x31, x32, x33, x30), new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x34, x35, x36, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x29), x30, x31, x32, x33, x30)=new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) ==> new_takeWhile7(x29, x30, x31, x32, x33)_>=_new_takeWhile17(Main.Neg(x29), x30, x31, x32, x33, x30)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x31, x32, x33)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x31, x32, x33, Main.Pos(Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x37, x38, x39, x40, x41) -> new_takeWhile17(Main.Neg(x37), x38, x39, x40, x41, x38), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x37), x38, x39, x40, x41, x38)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile7(x37, x38, x39, x40, x41)_>=_new_takeWhile17(Main.Neg(x37), x38, x39, x40, x41, x38)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x46, x47, x48, x49, x50) -> new_takeWhile17(Main.Neg(x46), x47, x48, x49, x50, x47), new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x46), x47, x48, x49, x50, x47)=new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile7(x46, x47, x48, x49, x50)_>=_new_takeWhile17(Main.Neg(x46), x47, x48, x49, x50, x47)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x54, x55, x56, x57, x58) -> new_takeWhile17(Main.Neg(x54), x55, x56, x57, x58, x55), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x54), x55, x56, x57, x58, x55)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile7(x54, x55, x56, x57, x58)_>=_new_takeWhile17(Main.Neg(x54), x55, x56, x57, x58, x55)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x63, x64, x65, x66, x67) -> new_takeWhile17(Main.Neg(x63), x64, x65, x66, x67, x64), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x63), x64, x65, x66, x67, x64)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile7(x63, x64, x65, x66, x67)_>=_new_takeWhile17(Main.Neg(x63), x64, x65, x66, x67, x64)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x71, x72, x73, x74, x75) -> new_takeWhile17(Main.Neg(x71), x72, x73, x74, x75, x72), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, new_not0(x76, x77)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x71), x72, x73, x74, x75, x72)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) ==> new_takeWhile7(x71, x72, x73, x74, x75)_>=_new_takeWhile17(Main.Neg(x71), x72, x73, x74, x75, x72)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x81, x82, x83, x84, x85) -> new_takeWhile17(Main.Neg(x81), x82, x83, x84, x85, x82), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x81), x82, x83, x84, x85, x82)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile7(x81, x82, x83, x84, x85)_>=_new_takeWhile17(Main.Neg(x81), x82, x83, x84, x85, x82)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *We consider the chain new_takeWhile7(x90, x91, x92, x93, x94) -> new_takeWhile17(Main.Neg(x90), x91, x92, x93, x94, x91), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, MyTrue) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile17(Main.Neg(x90), x91, x92, x93, x94, x91)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile7(x90, x91, x92, x93, x94)_>=_new_takeWhile17(Main.Neg(x90), x91, x92, x93, x94, x91)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue), new_takeWhile18(x110, x111, x112, x113, x114, MyTrue) -> new_takeWhile7(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)=new_takeWhile18(x110, x111, x112, x113, x114, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile18(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155)), new_takeWhile7(x156, x157, x158, x159, x160) -> new_takeWhile17(Main.Neg(x156), x157, x158, x159, x160, x157) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))=new_takeWhile7(x156, x157, x158, x159, x160) ==> new_takeWhile18(x151, x152, x153, x154, x155, MyTrue)_>=_new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile18(x151, x152, x153, x154, x155, MyTrue)_>=_new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227))) -> new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue), new_takeWhile18(x231, x232, x233, x234, x235, MyTrue) -> new_takeWhile7(x231, x235, x233, x234, new_psMyInt2(x233, x234, x235)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)=new_takeWhile18(x231, x232, x233, x234, x235, MyTrue) ==> new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227)))_>=_new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227)))_>=_new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue), new_takeWhile18(x290, x291, x292, x293, x294, MyTrue) -> new_takeWhile7(x290, x294, x292, x293, new_psMyInt2(x292, x293, x294)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)=new_takeWhile18(x290, x291, x292, x293, x294, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue), new_takeWhile18(x334, x335, x336, x337, x338, MyTrue) -> new_takeWhile7(x334, x338, x336, x337, new_psMyInt2(x336, x337, x338)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)=new_takeWhile18(x334, x335, x336, x337, x338, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue), new_takeWhile18(x384, x385, x386, x387, x388, MyTrue) -> new_takeWhile7(x384, x388, x386, x387, new_psMyInt2(x386, x387, x388)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)=new_takeWhile18(x384, x385, x386, x387, x388, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue), new_takeWhile18(x428, x429, x430, x431, x432, MyTrue) -> new_takeWhile7(x428, x432, x430, x431, new_psMyInt2(x430, x431, x432)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)=new_takeWhile18(x428, x429, x430, x431, x432, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue), new_takeWhile18(x478, x479, x480, x481, x482, MyTrue) -> new_takeWhile7(x478, x482, x480, x481, new_psMyInt2(x480, x481, x482)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)=new_takeWhile18(x478, x479, x480, x481, x482, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521)), new_takeWhile18(x525, x526, x527, x528, x529, MyTrue) -> new_takeWhile7(x525, x529, x527, x528, new_psMyInt2(x527, x528, x529)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))=new_takeWhile18(x525, x526, x527, x528, x529, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_not0(x520, x521)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x520, x521)=MyTrue which results in the following new constraints: 291.92/213.14 291.92/213.14 (3) (new_not1=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.14 291.92/213.14 (4) (new_not3=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.14 291.92/213.14 (5) (new_not0(x672, x671)=MyTrue & (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) 291.92/213.14 291.92/213.14 (6) (new_not2=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.14 291.92/213.14 (7) (new_not5=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.14 291.92/213.14 (8) (new_not4=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) with sigma = [x673 / x522, x674 / x523, x675 / x524] which results in the following new constraint: 291.92/213.14 291.92/213.14 (9) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.14 291.92/213.14 (10) (new_not5=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (11) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (12) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (13) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue), new_takeWhile18(x587, x588, x589, x590, x591, MyTrue) -> new_takeWhile7(x587, x591, x589, x590, new_psMyInt2(x589, x590, x591)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)=new_takeWhile18(x587, x588, x589, x590, x591, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.14 *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue), new_takeWhile18(x637, x638, x639, x640, x641, MyTrue) -> new_takeWhile7(x637, x641, x639, x640, new_psMyInt2(x639, x640, x641)) which results in the following constraint: 291.92/213.14 291.92/213.14 (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)=new_takeWhile18(x637, x638, x639, x640, x641, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.14 291.92/213.14 (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.14 291.92/213.14 *new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(x10), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x7, x8, x9, Main.Pos(Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(x19, Main.Pos(Main.Succ(x25)), x21, x22, x23)_>=_new_takeWhile17(Main.Neg(x19), Main.Pos(Main.Succ(x25)), x21, x22, x23, Main.Pos(Main.Succ(x25)))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x31, x32, x33)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x31, x32, x33, Main.Pos(Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 291.92/213.14 *(new_takeWhile18(x151, x152, x153, x154, x155, MyTrue)_>=_new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227)))_>=_new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) 291.92/213.14 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 291.92/213.14 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. 291.92/213.14 ---------------------------------------- 291.92/213.14 291.92/213.14 (487) 291.92/213.14 Obligation: 291.92/213.14 Q DP problem: 291.92/213.14 The TRS P consists of the following rules: 291.92/213.14 291.92/213.14 new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.14 new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.14 291.92/213.14 The TRS R consists of the following rules: 291.92/213.14 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.14 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.14 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.14 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.14 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.14 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.14 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.14 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.14 new_not4 -> MyFalse 291.92/213.14 new_not3 -> new_not4 291.92/213.14 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.14 new_not5 -> MyTrue 291.92/213.14 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.14 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.14 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.14 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (488) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.15 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (489) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (490) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (491) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (492) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (493) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (494) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (495) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (496) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (497) TransformationProof (EQUIVALENT) 291.92/213.15 By instantiating [LPAR04] the rule new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)),new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0))) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (498) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (499) TransformationProof (EQUIVALENT) 291.92/213.15 By instantiating [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (500) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (501) TransformationProof (EQUIVALENT) 291.92/213.15 By instantiating [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (502) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (503) QDPOrderProof (EQUIVALENT) 291.92/213.15 We use the reduction pair processor [LPAR04,JAR06]. 291.92/213.15 291.92/213.15 291.92/213.15 The following pairs can be oriented strictly and are deleted. 291.92/213.15 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 The remaining pairs can at least be oriented weakly. 291.92/213.15 Used ordering: Polynomial interpretation [POLO]: 291.92/213.15 291.92/213.15 POL(Main.Neg(x_1)) = x_1 291.92/213.15 POL(Main.Pos(x_1)) = 0 291.92/213.15 POL(Main.Succ(x_1)) = 0 291.92/213.15 POL(Main.Zero) = 1 291.92/213.15 POL(MyFalse) = 1 291.92/213.15 POL(MyTrue) = 0 291.92/213.15 POL(new_not0(x_1, x_2)) = 0 291.92/213.15 POL(new_not1) = 1 291.92/213.15 POL(new_not2) = 1 291.92/213.15 POL(new_not3) = 1 291.92/213.15 POL(new_not4) = 1 291.92/213.15 POL(new_not5) = 1 291.92/213.15 POL(new_primMinusNat0(x_1, x_2)) = 0 291.92/213.15 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 291.92/213.15 POL(new_primPlusInt1(x_1, x_2)) = 0 291.92/213.15 POL(new_primPlusInt2(x_1, x_2)) = x_1 291.92/213.15 POL(new_primPlusNat0(x_1, x_2)) = x_1 291.92/213.15 POL(new_primPlusNat2(x_1, x_2)) = x_1 291.92/213.15 POL(new_psMyInt2(x_1, x_2, x_3)) = 0 291.92/213.15 POL(new_takeWhile16(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 291.92/213.15 POL(new_takeWhile17(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 291.92/213.15 POL(new_takeWhile6(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 291.92/213.15 291.92/213.15 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.92/213.15 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (504) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (505) MNOCProof (EQUIVALENT) 291.92/213.15 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (506) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 Q is empty. 291.92/213.15 We have to consider all (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (507) InductionCalculusProof (EQUIVALENT) 291.92/213.15 Note that final constraints are written in bold face. 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 For Pair new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: 291.92/213.15 *We consider the chain new_takeWhile16(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile6(x10, x11, x12, x13, x14) -> new_takeWhile17(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: 291.92/213.15 291.92/213.15 (1) (new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile6(x10, x11, x12, x13, x14) ==> new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (2) (new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 For Pair new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) the following chains were created: 291.92/213.15 *We consider the chain new_takeWhile6(x35, x36, x37, x38, x39) -> new_takeWhile17(Main.Pos(x35), x36, x37, x38, x39, x36), new_takeWhile17(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) -> new_takeWhile16(x40, Main.Pos(Main.Succ(x41)), x42, x43, x44, new_not0(Main.Succ(x41), x40)) which results in the following constraint: 291.92/213.15 291.92/213.15 (1) (new_takeWhile17(Main.Pos(x35), x36, x37, x38, x39, x36)=new_takeWhile17(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) ==> new_takeWhile6(x35, x36, x37, x38, x39)_>=_new_takeWhile17(Main.Pos(x35), x36, x37, x38, x39, x36)) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (2) (new_takeWhile6(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile17(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 *We consider the chain new_takeWhile6(x45, x46, x47, x48, x49) -> new_takeWhile17(Main.Pos(x45), x46, x47, x48, x49, x46), new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x50, x51, x52, MyTrue) which results in the following constraint: 291.92/213.15 291.92/213.15 (1) (new_takeWhile17(Main.Pos(x45), x46, x47, x48, x49, x46)=new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) ==> new_takeWhile6(x45, x46, x47, x48, x49)_>=_new_takeWhile17(Main.Pos(x45), x46, x47, x48, x49, x46)) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (2) (new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 For Pair new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) the following chains were created: 291.92/213.15 *We consider the chain new_takeWhile17(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54))) -> new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53)), new_takeWhile16(x58, x59, x60, x61, x62, MyTrue) -> new_takeWhile6(x58, x62, x60, x61, new_psMyInt2(x60, x61, x62)) which results in the following constraint: 291.92/213.15 291.92/213.15 (1) (new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))=new_takeWhile16(x58, x59, x60, x61, x62, MyTrue) ==> new_takeWhile17(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.92/213.15 291.92/213.15 (2) (Main.Succ(x54)=x95 & new_not0(x95, x53)=MyTrue ==> new_takeWhile17(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x95, x53)=MyTrue which results in the following new constraints: 291.92/213.15 291.92/213.15 (3) (new_not1=MyTrue & Main.Succ(x54)=Main.Succ(x96) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.15 291.92/213.15 (4) (new_not3=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile17(Main.Pos(Main.Succ(x97)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Succ(x97), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x97)))) 291.92/213.15 291.92/213.15 (5) (new_not0(x99, x98)=MyTrue & Main.Succ(x54)=Main.Succ(x99) & (\/x100,x101,x102,x103:new_not0(x99, x98)=MyTrue & Main.Succ(x100)=x99 ==> new_takeWhile17(Main.Pos(x98), Main.Pos(Main.Succ(x100)), x101, x102, x103, Main.Pos(Main.Succ(x100)))_>=_new_takeWhile16(x98, Main.Pos(Main.Succ(x100)), x101, x102, x103, new_not0(Main.Succ(x100), x98))) ==> new_takeWhile17(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Succ(x98), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x98)))) 291.92/213.15 291.92/213.15 (6) (new_not2=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (7) (new_not1=MyTrue ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (8) (new_not0(x99, x98)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x99)), x55, x56, x57, Main.Pos(Main.Succ(x99)))_>=_new_takeWhile16(Main.Succ(x98), Main.Pos(Main.Succ(x99)), x55, x56, x57, new_not0(Main.Succ(x99), Main.Succ(x98)))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.15 291.92/213.15 (9) (new_not5=MyTrue ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (10) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x99, x98)=MyTrue which results in the following new constraints: 291.92/213.15 291.92/213.15 (11) (new_not1=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) 291.92/213.15 291.92/213.15 (12) (new_not3=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) 291.92/213.15 291.92/213.15 (13) (new_not0(x107, x106)=MyTrue & (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile16(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) 291.92/213.15 291.92/213.15 (14) (new_not2=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (11) using rule (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (15) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (16) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) with sigma = [x108 / x55, x109 / x56, x110 / x57] which results in the following new constraint: 291.92/213.15 291.92/213.15 (17) (new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile16(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (18) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 For Pair new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.15 *We consider the chain new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue), new_takeWhile16(x81, x82, x83, x84, x85, MyTrue) -> new_takeWhile6(x81, x85, x83, x84, new_psMyInt2(x83, x84, x85)) which results in the following constraint: 291.92/213.15 291.92/213.15 (1) (new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)=new_takeWhile16(x81, x82, x83, x84, x85, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.15 291.92/213.15 (2) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.15 291.92/213.15 *new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 291.92/213.15 *(new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 *new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 291.92/213.15 *(new_takeWhile6(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile17(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) 291.92/213.15 291.92/213.15 291.92/213.15 *(new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 *new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 291.92/213.15 *(new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile16(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) 291.92/213.15 291.92/213.15 291.92/213.15 *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) 291.92/213.15 291.92/213.15 291.92/213.15 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) 291.92/213.15 291.92/213.15 291.92/213.15 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) 291.92/213.15 291.92/213.15 291.92/213.15 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 *new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 291.92/213.15 *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 291.92/213.15 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. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (508) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (509) TransformationProof (EQUIVALENT) 291.92/213.15 By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1)) 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1))) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (510) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (511) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (512) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (513) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (514) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (515) TransformationProof (EQUIVALENT) 291.92/213.15 By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1)) 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3)) 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (516) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (517) DependencyGraphProof (EQUIVALENT) 291.92/213.15 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (518) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (519) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (520) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (521) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (522) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (523) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (524) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.15 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.15 new_not5 291.92/213.15 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 291.92/213.15 We have to consider all minimal (P,Q,R)-chains. 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (525) TransformationProof (EQUIVALENT) 291.92/213.15 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.15 291.92/213.15 (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) 291.92/213.15 291.92/213.15 291.92/213.15 ---------------------------------------- 291.92/213.15 291.92/213.15 (526) 291.92/213.15 Obligation: 291.92/213.15 Q DP problem: 291.92/213.15 The TRS P consists of the following rules: 291.92/213.15 291.92/213.15 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.15 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.15 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.15 291.92/213.15 The TRS R consists of the following rules: 291.92/213.15 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.15 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.15 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.15 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.15 new_not4 -> MyFalse 291.92/213.15 new_not3 -> new_not4 291.92/213.15 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.15 new_not5 -> MyTrue 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.15 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.15 new_not1 -> new_not5 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.15 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.15 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.15 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.15 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.15 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.15 new_not2 -> new_not5 291.92/213.15 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.15 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.15 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.15 291.92/213.15 The set Q consists of the following terms: 291.92/213.15 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.15 new_not2 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.15 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.15 new_not3 291.92/213.15 new_primPlusNat2(x0, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.15 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_not4 291.92/213.15 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.15 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.15 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.15 new_not1 291.92/213.15 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.15 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.15 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (527) TransformationProof (EQUIVALENT) 291.92/213.16 By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1)) 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3)) 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (528) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (529) DependencyGraphProof (EQUIVALENT) 291.92/213.16 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (530) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (531) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (532) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (533) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (534) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (535) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (536) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (537) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (538) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (539) TransformationProof (EQUIVALENT) 291.92/213.16 By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1)) 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3)) 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1))) 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (540) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (541) DependencyGraphProof (EQUIVALENT) 291.92/213.16 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (542) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (543) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (544) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (545) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (546) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (547) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (548) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (549) TransformationProof (EQUIVALENT) 291.92/213.16 By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.16 291.92/213.16 (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (550) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (551) MNOCProof (EQUIVALENT) 291.92/213.16 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (552) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 Q is empty. 291.92/213.16 We have to consider all (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (553) InductionCalculusProof (EQUIVALENT) 291.92/213.16 Note that final constraints are written in bold face. 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile16(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile6(x10, x11, x12, x13, x14) -> new_takeWhile17(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile6(x10, x11, x12, x13, x14) ==> new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile6(x70, x71, x72, x73, x74) -> new_takeWhile17(Main.Pos(x70), x71, x72, x73, x74, x71), new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x75, x76, x77, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x70), x71, x72, x73, x74, x71)=new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) ==> new_takeWhile6(x70, x71, x72, x73, x74)_>=_new_takeWhile17(Main.Pos(x70), x71, x72, x73, x74, x71)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x78, x79, x80, x81, x82) -> new_takeWhile17(Main.Pos(x78), x79, x80, x81, x82, x79), new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x83)), x84, x85, x86, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x78), x79, x80, x81, x82, x79)=new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) ==> new_takeWhile6(x78, x79, x80, x81, x82)_>=_new_takeWhile17(Main.Pos(x78), x79, x80, x81, x82, x79)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x87, x88, x89, x90, x91) -> new_takeWhile17(Main.Pos(x87), x88, x89, x90, x91, x88), new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x87), x88, x89, x90, x91, x88)=new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) ==> new_takeWhile6(x87, x88, x89, x90, x91)_>=_new_takeWhile17(Main.Pos(x87), x88, x89, x90, x91, x88)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x96, x97, x98, x99, x100) -> new_takeWhile17(Main.Pos(x96), x97, x98, x99, x100, x97), new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x96), x97, x98, x99, x100, x97)=new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) ==> new_takeWhile6(x96, x97, x98, x99, x100)_>=_new_takeWhile17(Main.Pos(x96), x97, x98, x99, x100, x97)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x104, x105, x106, x107, x108) -> new_takeWhile17(Main.Pos(x104), x105, x106, x107, x108, x105), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x104), x105, x106, x107, x108, x105)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) ==> new_takeWhile6(x104, x105, x106, x107, x108)_>=_new_takeWhile17(Main.Pos(x104), x105, x106, x107, x108, x105)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x113, x114, x115, x116, x117) -> new_takeWhile17(Main.Pos(x113), x114, x115, x116, x117, x114), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x113), x114, x115, x116, x117, x114)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile6(x113, x114, x115, x116, x117)_>=_new_takeWhile17(Main.Pos(x113), x114, x115, x116, x117, x114)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x121, x122, x123, x124, x125) -> new_takeWhile17(Main.Pos(x121), x122, x123, x124, x125, x122), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, new_not0(x127, x126)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x121), x122, x123, x124, x125, x122)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) ==> new_takeWhile6(x121, x122, x123, x124, x125)_>=_new_takeWhile17(Main.Pos(x121), x122, x123, x124, x125, x122)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x131, x132, x133, x134, x135) -> new_takeWhile17(Main.Pos(x131), x132, x133, x134, x135, x132), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x131), x132, x133, x134, x135, x132)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) ==> new_takeWhile6(x131, x132, x133, x134, x135)_>=_new_takeWhile17(Main.Pos(x131), x132, x133, x134, x135, x132)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *We consider the chain new_takeWhile6(x140, x141, x142, x143, x144) -> new_takeWhile17(Main.Pos(x140), x141, x142, x143, x144, x141), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, MyTrue) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile17(Main.Pos(x140), x141, x142, x143, x144, x141)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile6(x140, x141, x142, x143, x144)_>=_new_takeWhile17(Main.Pos(x140), x141, x142, x143, x144, x141)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue), new_takeWhile16(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile6(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)=new_takeWhile16(x151, x152, x153, x154, x155, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue), new_takeWhile16(x190, x191, x192, x193, x194, MyTrue) -> new_takeWhile6(x190, x194, x192, x193, new_psMyInt2(x192, x193, x194)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)=new_takeWhile16(x190, x191, x192, x193, x194, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue), new_takeWhile16(x239, x240, x241, x242, x243, MyTrue) -> new_takeWhile6(x239, x243, x241, x242, new_psMyInt2(x241, x242, x243)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)=new_takeWhile16(x239, x240, x241, x242, x243, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue), new_takeWhile16(x287, x288, x289, x290, x291, MyTrue) -> new_takeWhile6(x287, x291, x289, x290, new_psMyInt2(x289, x290, x291)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)=new_takeWhile16(x287, x288, x289, x290, x291, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue), new_takeWhile16(x326, x327, x328, x329, x330, MyTrue) -> new_takeWhile6(x326, x330, x328, x329, new_psMyInt2(x328, x329, x330)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)=new_takeWhile16(x326, x327, x328, x329, x330, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue), new_takeWhile16(x374, x375, x376, x377, x378, MyTrue) -> new_takeWhile6(x374, x378, x376, x377, new_psMyInt2(x376, x377, x378)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)=new_takeWhile16(x374, x375, x376, x377, x378, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409)), new_takeWhile16(x414, x415, x416, x417, x418, MyTrue) -> new_takeWhile6(x414, x418, x416, x417, new_psMyInt2(x416, x417, x418)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))=new_takeWhile16(x414, x415, x416, x417, x418, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_not0(x410, x409)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x410, x409)=MyTrue which results in the following new constraints: 291.92/213.16 291.92/213.16 (3) (new_not1=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.16 291.92/213.16 (4) (new_not3=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.16 291.92/213.16 (5) (new_not0(x559, x558)=MyTrue & (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) 291.92/213.16 291.92/213.16 (6) (new_not2=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.16 291.92/213.16 (7) (new_not5=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.16 291.92/213.16 (8) (new_not4=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) with sigma = [x560 / x411, x561 / x412, x562 / x413] which results in the following new constraint: 291.92/213.16 291.92/213.16 (9) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.16 291.92/213.16 (10) (new_not5=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (11) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (12) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (13) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue), new_takeWhile16(x473, x474, x475, x476, x477, MyTrue) -> new_takeWhile6(x473, x477, x475, x476, new_psMyInt2(x475, x476, x477)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)=new_takeWhile16(x473, x474, x475, x476, x477, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: 291.92/213.16 *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue), new_takeWhile16(x521, x522, x523, x524, x525, MyTrue) -> new_takeWhile6(x521, x525, x523, x524, new_psMyInt2(x523, x524, x525)) which results in the following constraint: 291.92/213.16 291.92/213.16 (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)=new_takeWhile16(x521, x522, x523, x524, x525, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.16 291.92/213.16 (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.16 291.92/213.16 *new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 291.92/213.16 *(new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) 291.92/213.16 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 291.92/213.16 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. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (554) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) 291.92/213.16 new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) 291.92/213.16 new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.16 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.16 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.16 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) 291.92/213.16 new_not4 -> MyFalse 291.92/213.16 new_not3 -> new_not4 291.92/213.16 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.16 new_not5 -> MyTrue 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.16 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.16 new_not1 -> new_not5 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.16 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.16 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) 291.92/213.16 new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) 291.92/213.16 new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.16 new_not2 -> new_not5 291.92/213.16 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.16 new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) 291.92/213.16 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.16 new_not2 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat2(x0, Main.Succ(x1)) 291.92/213.16 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) 291.92/213.16 new_not3 291.92/213.16 new_primPlusNat2(x0, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_not4 291.92/213.16 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_psMyInt2(x0, Main.Neg(x1), x2) 291.92/213.16 new_not1 291.92/213.16 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.16 new_psMyInt2(x0, Main.Pos(Main.Zero), x1) 291.92/213.16 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.16 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.16 new_not0(Main.Zero, Main.Zero) 291.92/213.16 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.16 new_not5 291.92/213.16 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (555) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS1(wy16000), Main.Zero) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) 291.92/213.16 new_primDivNatS00(wy850, wy851) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Zero) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Zero, Main.Zero) -> new_primDivNatS00(wy850, wy851) 291.92/213.16 new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Succ(wy17000)) -> new_primDivNatS0(wy16000, wy17000, wy16000, wy17000) 291.92/213.16 new_primDivNatS(Main.Succ(Main.Zero), Main.Zero) -> new_primDivNatS(new_primMinusNatS2, Main.Zero) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.16 new_primMinusNatS2 -> Main.Zero 291.92/213.16 new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) 291.92/213.16 new_primMinusNatS2 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primMinusNatS1(x0) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (556) DependencyGraphProof (EQUIVALENT) 291.92/213.16 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (557) 291.92/213.16 Complex Obligation (AND) 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (558) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Zero) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) 291.92/213.16 new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Succ(wy17000)) -> new_primDivNatS0(wy16000, wy17000, wy16000, wy17000) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Zero, Main.Zero) -> new_primDivNatS00(wy850, wy851) 291.92/213.16 new_primDivNatS00(wy850, wy851) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.16 new_primMinusNatS2 -> Main.Zero 291.92/213.16 new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) 291.92/213.16 new_primMinusNatS2 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primMinusNatS1(x0) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (559) QDPOrderProof (EQUIVALENT) 291.92/213.16 We use the reduction pair processor [LPAR04,JAR06]. 291.92/213.16 291.92/213.16 291.92/213.16 The following pairs can be oriented strictly and are deleted. 291.92/213.16 291.92/213.16 new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Succ(wy17000)) -> new_primDivNatS0(wy16000, wy17000, wy16000, wy17000) 291.92/213.16 The remaining pairs can at least be oriented weakly. 291.92/213.16 Used ordering: Polynomial interpretation [POLO]: 291.92/213.16 291.92/213.16 POL(Main.Succ(x_1)) = 1 + x_1 291.92/213.16 POL(Main.Zero) = 1 291.92/213.16 POL(new_primDivNatS(x_1, x_2)) = x_1 291.92/213.16 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 291.92/213.16 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 291.92/213.16 POL(new_primMinusNatS0(x_1, x_2)) = x_1 291.92/213.16 291.92/213.16 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (560) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Zero) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Zero, Main.Zero) -> new_primDivNatS00(wy850, wy851) 291.92/213.16 new_primDivNatS00(wy850, wy851) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.16 new_primMinusNatS2 -> Main.Zero 291.92/213.16 new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) 291.92/213.16 new_primMinusNatS2 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primMinusNatS1(x0) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (561) DependencyGraphProof (EQUIVALENT) 291.92/213.16 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (562) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.16 new_primMinusNatS2 -> Main.Zero 291.92/213.16 new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) 291.92/213.16 new_primMinusNatS2 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primMinusNatS1(x0) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (563) QDPSizeChangeProof (EQUIVALENT) 291.92/213.16 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. 291.92/213.16 291.92/213.16 From the DPs we obtained the following set of size-change graphs: 291.92/213.16 *new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) 291.92/213.16 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 291.92/213.16 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (564) 291.92/213.16 YES 291.92/213.16 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (565) 291.92/213.16 Obligation: 291.92/213.16 Q DP problem: 291.92/213.16 The TRS P consists of the following rules: 291.92/213.16 291.92/213.16 new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS1(wy16000), Main.Zero) 291.92/213.16 291.92/213.16 The TRS R consists of the following rules: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.16 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.16 new_primMinusNatS2 -> Main.Zero 291.92/213.16 new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) 291.92/213.16 291.92/213.16 The set Q consists of the following terms: 291.92/213.16 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Zero) 291.92/213.16 new_primMinusNatS2 291.92/213.16 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) 291.92/213.16 new_primMinusNatS1(x0) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Zero) 291.92/213.16 new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.16 291.92/213.16 We have to consider all minimal (P,Q,R)-chains. 291.92/213.16 ---------------------------------------- 291.92/213.16 291.92/213.16 (566) MRRProof (EQUIVALENT) 291.92/213.16 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. 291.92/213.17 291.92/213.17 Strictly oriented dependency pairs: 291.92/213.17 291.92/213.17 new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS1(wy16000), Main.Zero) 291.92/213.17 291.92/213.17 Strictly oriented rules of the TRS R: 291.92/213.17 291.92/213.17 new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) 291.92/213.17 new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) 291.92/213.17 new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero 291.92/213.17 291.92/213.17 Used ordering: Polynomial interpretation [POLO]: 291.92/213.17 291.92/213.17 POL(Main.Succ(x_1)) = 1 + x_1 291.92/213.17 POL(Main.Zero) = 2 291.92/213.17 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 291.92/213.17 POL(new_primMinusNatS0(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 291.92/213.17 POL(new_primMinusNatS1(x_1)) = 1 + x_1 291.92/213.17 POL(new_primMinusNatS2) = 2 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (567) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 P is empty. 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNatS2 -> Main.Zero 291.92/213.17 new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primMinusNatS0(Main.Zero, Main.Zero) 291.92/213.17 new_primMinusNatS2 291.92/213.17 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primMinusNatS1(x0) 291.92/213.17 new_primMinusNatS0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (568) PisEmptyProof (EQUIVALENT) 291.92/213.17 The TRS P is empty. Hence, there is no (P,Q,R) chain. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (569) 291.92/213.17 YES 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (570) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) 291.92/213.17 new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) 291.92/213.17 new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_flip(Main.Zero, Main.Neg(Main.Zero)) 291.92/213.17 new_not2 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip(Main.Zero, Main.Pos(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_flip(x0, Main.Pos(Main.Succ(x1))) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) 291.92/213.17 new_not3 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not1 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_flip(x0, Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (571) MNOCProof (EQUIVALENT) 291.92/213.17 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (572) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) 291.92/213.17 new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) 291.92/213.17 new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (573) InductionCalculusProof (EQUIVALENT) 291.92/213.17 Note that final constraints are written in bold face. 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 For Pair new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) the following chains were created: 291.92/213.17 *We consider the chain new_takeWhile13(x4, x5, x6, x7, MyTrue) -> new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7)), new_takeWhile3(x8, x9, x10, x11) -> new_takeWhile13(x8, x9, x10, x11, new_flip(x8, x9)) which results in the following constraint: 291.92/213.17 291.92/213.17 (1) (new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))=new_takeWhile3(x8, x9, x10, x11) ==> new_takeWhile13(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (2) (new_takeWhile13(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 For Pair new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) the following chains were created: 291.92/213.17 *We consider the chain new_takeWhile3(x12, x13, x14, x15) -> new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13)), new_takeWhile13(x16, x17, x18, x19, MyTrue) -> new_takeWhile3(x16, x19, x18, new_psMyInt1(x18, x19)) which results in the following constraint: 291.92/213.17 291.92/213.17 (1) (new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13))=new_takeWhile13(x16, x17, x18, x19, MyTrue) ==> new_takeWhile3(x12, x13, x14, x15)_>=_new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (2) (new_flip(x12, x13)=MyTrue ==> new_takeWhile3(x12, x13, x14, x15)_>=_new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip(x12, x13)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (3) (new_not1=MyTrue ==> new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (4) (new_not2=MyTrue ==> new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (5) (new_not0(x26, Main.Succ(x25))=MyTrue ==> new_takeWhile3(x26, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(x26, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(x26, Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 (6) (new_not1=MyTrue ==> new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.92/213.17 291.92/213.17 (7) (new_not0(Main.Succ(x29), Main.Zero)=MyTrue ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 (8) (new_not2=MyTrue ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (9) (new_not5=MyTrue ==> new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (10) (new_not5=MyTrue ==> new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (5) using rule (VII) which results in the following new constraint: 291.92/213.17 291.92/213.17 (11) (Main.Succ(x25)=x30 & new_not0(x26, x30)=MyTrue ==> new_takeWhile3(x26, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(x26, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(x26, Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (12) (new_not5=MyTrue ==> new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (7) using rule (VII) which results in the following new constraint: 291.92/213.17 291.92/213.17 (13) (Main.Succ(x29)=x38 & Main.Zero=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (14) (new_not5=MyTrue ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (15) (new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (16) (new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not0(x26, x30)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (17) (new_not1=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile3(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Succ(x31), Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 (18) (new_not3=MyTrue & Main.Succ(x25)=Main.Succ(x32) ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 (19) (new_not0(x34, x33)=MyTrue & Main.Succ(x25)=Main.Succ(x33) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x33 ==> new_takeWhile3(x34, Main.Neg(Main.Succ(x35)), x36, x37)_>=_new_takeWhile13(x34, Main.Neg(Main.Succ(x35)), x36, x37, new_flip(x34, Main.Neg(Main.Succ(x35))))) ==> new_takeWhile3(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 (20) (new_not2=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (17) using rules (I), (II).We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (21) (new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (19) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (22) (new_takeWhile3(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15)_>=_new_takeWhile13(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (20) using rules (I), (II).We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (23) (new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (24) (new_not1=MyTrue & Main.Succ(x29)=Main.Succ(x40) & Main.Zero=Main.Zero ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 (25) (new_not3=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Succ(x41) ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 (26) (new_not0(x43, x42)=MyTrue & Main.Succ(x29)=Main.Succ(x43) & Main.Zero=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Succ(x44)=x43 & Main.Zero=x42 ==> new_takeWhile3(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46)_>=_new_takeWhile13(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46, new_flip(Main.Succ(x44), Main.Neg(Main.Zero)))) ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 (27) (new_not2=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Zero ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (24) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (28) (new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (25) using rules (I), (II).We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (29) (new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.17 291.92/213.17 *new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) 291.92/213.17 291.92/213.17 *(new_takeWhile13(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 *new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) 291.92/213.17 291.92/213.17 *(new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile3(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15)_>=_new_takeWhile13(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 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. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (574) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) 291.92/213.17 new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) 291.92/213.17 new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_flip(Main.Zero, Main.Neg(Main.Zero)) 291.92/213.17 new_not2 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip(Main.Zero, Main.Pos(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_flip(x0, Main.Pos(Main.Succ(x1))) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) 291.92/213.17 new_not3 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not1 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_flip(x0, Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (575) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_primPlusInt(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt(wy7780, wy777000, wy776) 291.92/213.17 291.92/213.17 R is empty. 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (576) QDPSizeChangeProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 291.92/213.17 From the DPs we obtained the following set of size-change graphs: 291.92/213.17 *new_primPlusInt(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt(wy7780, wy777000, wy776) 291.92/213.17 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (577) 291.92/213.17 YES 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (578) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_not6(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not6(wy20000, wy439000) 291.92/213.17 291.92/213.17 R is empty. 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (579) QDPSizeChangeProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 291.92/213.17 From the DPs we obtained the following set of size-change graphs: 291.92/213.17 *new_not6(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not6(wy20000, wy439000) 291.92/213.17 The graph contains the following edges 1 > 1, 2 > 2 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (580) 291.92/213.17 YES 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (581) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat(wy8240, wy73400) 291.92/213.17 291.92/213.17 R is empty. 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (582) QDPSizeChangeProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 291.92/213.17 From the DPs we obtained the following set of size-change graphs: 291.92/213.17 *new_primMinusNat(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat(wy8240, wy73400) 291.92/213.17 The graph contains the following edges 1 > 1, 2 > 2 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (583) 291.92/213.17 YES 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (584) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_primPlusNat(Main.Succ(wy7780), Main.Succ(wy777000)) -> new_primPlusNat(wy7780, wy777000) 291.92/213.17 291.92/213.17 R is empty. 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (585) QDPSizeChangeProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 291.92/213.17 From the DPs we obtained the following set of size-change graphs: 291.92/213.17 *new_primPlusNat(Main.Succ(wy7780), Main.Succ(wy777000)) -> new_primPlusNat(wy7780, wy777000) 291.92/213.17 The graph contains the following edges 1 > 1, 2 > 2 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (586) 291.92/213.17 YES 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (587) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNatS(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS(wy7250, wy7260) 291.92/213.17 291.92/213.17 R is empty. 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (588) QDPSizeChangeProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 291.92/213.17 From the DPs we obtained the following set of size-change graphs: 291.92/213.17 *new_primMinusNatS(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS(wy7250, wy7260) 291.92/213.17 The graph contains the following edges 1 > 1, 2 > 2 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (589) 291.92/213.17 YES 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (590) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) 291.92/213.17 new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(x0, Main.Pos(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_not2 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(x0, Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not3 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) 291.92/213.17 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not1 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (591) MNOCProof (EQUIVALENT) 291.92/213.17 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (592) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) 291.92/213.17 new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (593) InductionCalculusProof (EQUIVALENT) 291.92/213.17 Note that final constraints are written in bold face. 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 For Pair new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) the following chains were created: 291.92/213.17 *We consider the chain new_takeWhile15(x4, x5, x6, x7, MyTrue) -> new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7)), new_takeWhile5(x8, x9, x10, x11) -> new_takeWhile15(x8, x9, x10, x11, new_flip0(x8, x9)) which results in the following constraint: 291.92/213.17 291.92/213.17 (1) (new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))=new_takeWhile5(x8, x9, x10, x11) ==> new_takeWhile15(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (2) (new_takeWhile15(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 For Pair new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) the following chains were created: 291.92/213.17 *We consider the chain new_takeWhile5(x12, x13, x14, x15) -> new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13)), new_takeWhile15(x16, x17, x18, x19, MyTrue) -> new_takeWhile5(x16, x19, x18, new_psMyInt1(x18, x19)) which results in the following constraint: 291.92/213.17 291.92/213.17 (1) (new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13))=new_takeWhile15(x16, x17, x18, x19, MyTrue) ==> new_takeWhile5(x12, x13, x14, x15)_>=_new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (2) (new_flip0(x12, x13)=MyTrue ==> new_takeWhile5(x12, x13, x14, x15)_>=_new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip0(x12, x13)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (3) (new_not0(Main.Succ(x24), x25)=MyTrue ==> new_takeWhile5(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (4) (new_not2=MyTrue ==> new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 (5) (new_not3=MyTrue ==> new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 (6) (new_not2=MyTrue ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (7) (new_not0(Main.Zero, Main.Succ(x28))=MyTrue ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (8) (new_not3=MyTrue ==> new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (3) using rule (VII) which results in the following new constraint: 291.92/213.17 291.92/213.17 (9) (Main.Succ(x24)=x30 & new_not0(x30, x25)=MyTrue ==> new_takeWhile5(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (10) (new_not5=MyTrue ==> new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (11) (new_not4=MyTrue ==> new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (12) (new_not5=MyTrue ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (7) using rule (VII) which results in the following new constraint: 291.92/213.17 291.92/213.17 (13) (Main.Zero=x38 & Main.Succ(x28)=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (14) (new_not4=MyTrue ==> new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_not0(x30, x25)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (15) (new_not1=MyTrue & Main.Succ(x24)=Main.Succ(x31) ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (16) (new_not3=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile5(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x32), Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (17) (new_not0(x34, x33)=MyTrue & Main.Succ(x24)=Main.Succ(x34) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x34 ==> new_takeWhile5(x33, Main.Pos(Main.Succ(x35)), x36, x37)_>=_new_takeWhile15(x33, Main.Pos(Main.Succ(x35)), x36, x37, new_flip0(x33, Main.Pos(Main.Succ(x35))))) ==> new_takeWhile5(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (18) (new_not2=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (19) (new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (16) using rules (I), (II).We simplified constraint (17) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (20) (new_takeWhile5(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile15(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (18) using rules (I), (II).We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (21) (new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (11) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (22) (new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (23) (new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (24) (new_not1=MyTrue & Main.Zero=Main.Succ(x40) & Main.Succ(x28)=Main.Zero ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (25) (new_not3=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Succ(x41) ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (26) (new_not0(x43, x42)=MyTrue & Main.Zero=Main.Succ(x43) & Main.Succ(x28)=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Zero=x43 & Main.Succ(x44)=x42 ==> new_takeWhile5(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46)_>=_new_takeWhile15(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46, new_flip0(Main.Succ(x44), Main.Pos(Main.Zero)))) ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (27) (new_not2=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Zero ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (24) using rules (I), (II).We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (28) (new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (29) (new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.17 291.92/213.17 *new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) 291.92/213.17 291.92/213.17 *(new_takeWhile15(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 *new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) 291.92/213.17 291.92/213.17 *(new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile5(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile15(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 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. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (594) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) 291.92/213.17 new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(x0, Main.Pos(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_not2 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(x0, Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not3 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) 291.92/213.17 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not1 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (595) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) 291.92/213.17 new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.92/213.17 new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(x0, Main.Pos(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_psMyInt0(Main.Neg(x0), x1) 291.92/213.17 new_not2 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(x0, Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_psMyInt0(Main.Pos(x0), x1) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not3 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) 291.92/213.17 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not1 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not5 291.92/213.17 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (596) MNOCProof (EQUIVALENT) 291.92/213.17 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (597) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) 291.92/213.17 new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.92/213.17 new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 291.92/213.17 Q is empty. 291.92/213.17 We have to consider all (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (598) InductionCalculusProof (EQUIVALENT) 291.92/213.17 Note that final constraints are written in bold face. 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 For Pair new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) the following chains were created: 291.92/213.17 *We consider the chain new_takeWhile14(x4, x5, x6, x7, MyTrue) -> new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7)), new_takeWhile4(x8, x9, x10, x11) -> new_takeWhile14(x8, x9, x10, x11, new_flip0(x8, x9)) which results in the following constraint: 291.92/213.17 291.92/213.17 (1) (new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))=new_takeWhile4(x8, x9, x10, x11) ==> new_takeWhile14(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (2) (new_takeWhile14(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 For Pair new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) the following chains were created: 291.92/213.17 *We consider the chain new_takeWhile4(x12, x13, x14, x15) -> new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13)), new_takeWhile14(x16, x17, x18, x19, MyTrue) -> new_takeWhile4(x16, x19, x18, new_psMyInt0(x18, x19)) which results in the following constraint: 291.92/213.17 291.92/213.17 (1) (new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13))=new_takeWhile14(x16, x17, x18, x19, MyTrue) ==> new_takeWhile4(x12, x13, x14, x15)_>=_new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (2) (new_flip0(x12, x13)=MyTrue ==> new_takeWhile4(x12, x13, x14, x15)_>=_new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip0(x12, x13)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (3) (new_not0(Main.Succ(x24), x25)=MyTrue ==> new_takeWhile4(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (4) (new_not2=MyTrue ==> new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 (5) (new_not3=MyTrue ==> new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 (6) (new_not2=MyTrue ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (7) (new_not0(Main.Zero, Main.Succ(x28))=MyTrue ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (8) (new_not3=MyTrue ==> new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (3) using rule (VII) which results in the following new constraint: 291.92/213.17 291.92/213.17 (9) (Main.Succ(x24)=x30 & new_not0(x30, x25)=MyTrue ==> new_takeWhile4(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (10) (new_not5=MyTrue ==> new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (11) (new_not4=MyTrue ==> new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (12) (new_not5=MyTrue ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (7) using rule (VII) which results in the following new constraint: 291.92/213.17 291.92/213.17 (13) (Main.Zero=x38 & Main.Succ(x28)=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: 291.92/213.17 291.92/213.17 (14) (new_not4=MyTrue ==> new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_not0(x30, x25)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (15) (new_not1=MyTrue & Main.Succ(x24)=Main.Succ(x31) ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (16) (new_not3=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile4(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x32), Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (17) (new_not0(x34, x33)=MyTrue & Main.Succ(x24)=Main.Succ(x34) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x34 ==> new_takeWhile4(x33, Main.Pos(Main.Succ(x35)), x36, x37)_>=_new_takeWhile14(x33, Main.Pos(Main.Succ(x35)), x36, x37, new_flip0(x33, Main.Pos(Main.Succ(x35))))) ==> new_takeWhile4(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 (18) (new_not2=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (19) (new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (16) using rules (I), (II).We simplified constraint (17) using rules (I), (II), (III), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (20) (new_takeWhile4(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile14(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (18) using rules (I), (II).We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (21) (new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (11) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (22) (new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (12) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (23) (new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: 291.92/213.17 291.92/213.17 (24) (new_not1=MyTrue & Main.Zero=Main.Succ(x40) & Main.Succ(x28)=Main.Zero ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (25) (new_not3=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Succ(x41) ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (26) (new_not0(x43, x42)=MyTrue & Main.Zero=Main.Succ(x43) & Main.Succ(x28)=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Zero=x43 & Main.Succ(x44)=x42 ==> new_takeWhile4(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46)_>=_new_takeWhile14(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46, new_flip0(Main.Succ(x44), Main.Pos(Main.Zero)))) ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 (27) (new_not2=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Zero ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (24) using rules (I), (II).We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (28) (new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: 291.92/213.17 291.92/213.17 (29) (new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.17 291.92/213.17 *new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) 291.92/213.17 291.92/213.17 *(new_takeWhile14(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 *new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) 291.92/213.17 291.92/213.17 *(new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile4(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile14(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 *(new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 291.92/213.17 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. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (599) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) 291.92/213.17 new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.92/213.17 new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_not3 -> new_not4 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 291.92/213.17 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.92/213.17 new_not1 -> new_not5 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) 291.92/213.17 new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not2 -> new_not5 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) -> new_not2 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(x0, Main.Pos(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_psMyInt0(Main.Neg(x0), x1) 291.92/213.17 new_not2 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(x0, Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_psMyInt0(Main.Pos(x0), x1) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_flip0(Main.Zero, Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not3 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) 291.92/213.17 new_not0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_not1 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_not0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not5 291.92/213.17 new_not0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip0(Main.Zero, Main.Pos(Main.Zero)) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (600) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile112(wy735, wy731, wy732, wy733, wy734, MyTrue) -> new_takeWhile112(wy735, new_psMyInt1(wy733, wy734), wy732, wy732, new_psMyInt1(wy733, wy734), new_flip1(wy735, new_psMyInt1(wy733, wy734))) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.17 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not10 -> new_not5 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.17 new_not11 -> new_not5 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.17 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.17 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not8 -> new_not4 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_not10 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_not8 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not7(x0, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_not12(Main.Zero, Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not7(x0, Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not9(Main.Zero, x0) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not11 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not9(Main.Succ(x0), x1) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (601) TransformationProof (EQUIVALENT) 291.92/213.17 By instantiating [LPAR04] the rule new_takeWhile112(wy735, wy731, wy732, wy733, wy734, MyTrue) -> new_takeWhile112(wy735, new_psMyInt1(wy733, wy734), wy732, wy732, new_psMyInt1(wy733, wy734), new_flip1(wy735, new_psMyInt1(wy733, wy734))) we obtained the following new rules [LPAR04]: 291.92/213.17 291.92/213.17 (new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))),new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1)))) 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (602) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.17 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_not10 -> new_not5 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.17 new_not11 -> new_not5 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.17 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.17 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_not8 -> new_not4 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_not10 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_not8 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not7(x0, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_not12(Main.Zero, Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not7(x0, Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not9(Main.Zero, x0) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not11 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not9(Main.Succ(x0), x1) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (603) UsableRulesProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (604) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_not10 -> new_not5 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.17 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.17 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.17 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.17 new_not8 -> new_not4 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_not11 -> new_not5 291.92/213.17 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.17 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_not10 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_not8 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not7(x0, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_not12(Main.Zero, Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not7(x0, Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not9(Main.Zero, x0) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not11 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not9(Main.Succ(x0), x1) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (605) TransformationProof (EQUIVALENT) 291.92/213.17 By narrowing [LPAR04] the rule new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.17 291.92/213.17 (new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))),new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1)))) 291.92/213.17 (new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))),new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1)))) 291.92/213.17 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (606) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.92/213.17 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_not10 -> new_not5 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.17 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.17 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.17 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.17 new_not8 -> new_not4 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_not11 -> new_not5 291.92/213.17 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.17 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_not10 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_not8 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not7(x0, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_not12(Main.Zero, Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not7(x0, Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not9(Main.Zero, x0) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not11 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not9(Main.Succ(x0), x1) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (607) DependencyGraphProof (EQUIVALENT) 291.92/213.17 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (608) 291.92/213.17 Complex Obligation (AND) 291.92/213.17 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (609) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.17 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_not10 -> new_not5 291.92/213.17 new_not5 -> MyTrue 291.92/213.17 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.17 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.17 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.17 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.17 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.17 new_not8 -> new_not4 291.92/213.17 new_not4 -> MyFalse 291.92/213.17 new_not11 -> new_not5 291.92/213.17 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.17 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.17 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.92/213.17 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.92/213.17 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.92/213.17 291.92/213.17 The set Q consists of the following terms: 291.92/213.17 291.92/213.17 new_not10 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.17 new_not8 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.17 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_not7(x0, Main.Zero) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_not12(Main.Zero, Main.Zero) 291.92/213.17 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.17 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.17 new_not7(x0, Main.Succ(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.17 new_not9(Main.Zero, x0) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.17 new_not4 291.92/213.17 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.17 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.17 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.17 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.17 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.17 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.17 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.17 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.17 new_not11 291.92/213.17 new_primPlusNat1(Main.Zero) 291.92/213.17 new_not5 291.92/213.17 new_not9(Main.Succ(x0), x1) 291.92/213.17 new_primPlusNat1(Main.Succ(x0)) 291.92/213.17 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.17 291.92/213.17 We have to consider all minimal (P,Q,R)-chains. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (610) UsableRulesProof (EQUIVALENT) 291.92/213.17 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. 291.92/213.17 ---------------------------------------- 291.92/213.17 291.92/213.17 (611) 291.92/213.17 Obligation: 291.92/213.17 Q DP problem: 291.92/213.17 The TRS P consists of the following rules: 291.92/213.17 291.92/213.17 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.17 291.92/213.17 The TRS R consists of the following rules: 291.92/213.17 291.92/213.17 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.17 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.17 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.17 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.17 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.17 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.17 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.17 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.18 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.18 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (612) QReductionProof (EQUIVALENT) 291.92/213.18 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.18 291.92/213.18 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.92/213.18 new_primPlusInt2(x0, Main.Neg(x1)) 291.92/213.18 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.92/213.18 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.92/213.18 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.92/213.18 new_primPlusInt2(x0, Main.Pos(x1)) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (613) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (614) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))),new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (615) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (616) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))),new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (617) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (618) UsableRulesProof (EQUIVALENT) 291.92/213.18 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. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (619) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (620) QReductionProof (EQUIVALENT) 291.92/213.18 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.18 291.92/213.18 new_psMyInt1(Main.Neg(x0), x1) 291.92/213.18 new_psMyInt1(Main.Pos(x0), x1) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (621) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (622) TransformationProof (EQUIVALENT) 291.92/213.18 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1))))) 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3)))) 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (623) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (624) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (625) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (626) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (627) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (628) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) at position [1,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (629) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (630) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) at position [1,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (631) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (632) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (633) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (634) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (635) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (636) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) at position [4,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (637) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (638) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) at position [4,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3)))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (639) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (640) TransformationProof (EQUIVALENT) 291.92/213.18 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (641) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (642) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (643) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (644) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (645) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (646) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (647) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (648) TransformationProof (EQUIVALENT) 291.92/213.18 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: 291.92/213.18 291.92/213.18 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) 291.92/213.18 291.92/213.18 291.92/213.18 ---------------------------------------- 291.92/213.18 291.92/213.18 (649) 291.92/213.18 Obligation: 291.92/213.18 Q DP problem: 291.92/213.18 The TRS P consists of the following rules: 291.92/213.18 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.92/213.18 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.18 291.92/213.18 The TRS R consists of the following rules: 291.92/213.18 291.92/213.18 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.18 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.18 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.18 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.18 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.18 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.18 new_not10 -> new_not5 291.92/213.18 new_not5 -> MyTrue 291.92/213.18 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.18 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.18 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.18 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.18 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.18 new_not8 -> new_not4 291.92/213.18 new_not4 -> MyFalse 291.92/213.18 new_not11 -> new_not5 291.92/213.18 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.18 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.18 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.18 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.18 291.92/213.18 The set Q consists of the following terms: 291.92/213.18 291.92/213.18 new_not10 291.92/213.18 new_not8 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.18 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_not7(x0, Main.Zero) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_not12(Main.Zero, Main.Zero) 291.92/213.18 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.18 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_not7(x0, Main.Succ(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.18 new_not9(Main.Zero, x0) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.18 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.18 new_not4 291.92/213.18 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.18 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.18 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.18 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.18 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.18 new_not11 291.92/213.18 new_primPlusNat1(Main.Zero) 291.92/213.18 new_not5 291.92/213.18 new_not9(Main.Succ(x0), x1) 291.92/213.18 new_primPlusNat1(Main.Succ(x0)) 291.92/213.18 291.92/213.18 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (650) TransformationProof (EQUIVALENT) 291.92/213.19 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (651) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (652) DependencyGraphProof (EQUIVALENT) 291.92/213.19 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (653) 291.92/213.19 Complex Obligation (AND) 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (654) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat1(Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (655) UsableRulesProof (EQUIVALENT) 291.92/213.19 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. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (656) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (657) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) at position [1,0] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (658) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (659) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) at position [4,0] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (660) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (661) UsableRulesProof (EQUIVALENT) 291.92/213.19 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. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (662) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (663) QReductionProof (EQUIVALENT) 291.92/213.19 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.19 291.92/213.19 new_primPlusNat1(Main.Zero) 291.92/213.19 new_primPlusNat1(Main.Succ(x0)) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (664) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (665) TransformationProof (EQUIVALENT) 291.92/213.19 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (666) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (667) DependencyGraphProof (EQUIVALENT) 291.92/213.19 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (668) 291.92/213.19 Complex Obligation (AND) 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (669) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (670) UsableRulesProof (EQUIVALENT) 291.92/213.19 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. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (671) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (672) QReductionProof (EQUIVALENT) 291.92/213.19 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.19 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (673) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (674) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (675) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (676) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (677) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (678) UsableRulesProof (EQUIVALENT) 291.92/213.19 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. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (679) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (680) QReductionProof (EQUIVALENT) 291.92/213.19 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.19 291.92/213.19 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.19 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (681) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (682) TransformationProof (EQUIVALENT) 291.92/213.19 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (683) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (684) UsableRulesProof (EQUIVALENT) 291.92/213.19 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. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (685) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (686) QReductionProof (EQUIVALENT) 291.92/213.19 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.19 291.92/213.19 new_not9(Main.Zero, x0) 291.92/213.19 new_not9(Main.Succ(x0), x1) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (687) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (688) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (689) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (690) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (691) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (692) TransformationProof (EQUIVALENT) 291.92/213.19 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: 291.92/213.19 291.92/213.19 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.92/213.19 291.92/213.19 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (693) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (694) DependencyGraphProof (EQUIVALENT) 291.92/213.19 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (695) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (696) InductionCalculusProof (EQUIVALENT) 291.92/213.19 Note that final constraints are written in bold face. 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 For Pair new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: 291.92/213.19 *We consider the chain new_takeWhile112(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile112(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) -> new_takeWhile112(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: 291.92/213.19 291.92/213.19 (1) (new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile112(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) ==> new_takeWhile112(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.92/213.19 291.92/213.19 (2) (Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile112(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: 291.92/213.19 291.92/213.19 (3) (new_not8=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x9)) ==> new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 (4) (new_not7(x11, x12)=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x11)) ==> new_takeWhile112(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.92/213.19 291.92/213.19 (5) (new_not8=MyTrue ==> new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (4) using rules (I), (II) which results in the following new constraint: 291.92/213.19 291.92/213.19 (6) (new_not7(x11, x12)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile112(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.92/213.19 291.92/213.19 (7) (new_not4=MyTrue ==> new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.92/213.19 291.92/213.19 (8) (new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x11, x12)=MyTrue which results in the following new constraints: 291.92/213.19 291.92/213.19 (9) (new_not12(x14, x13)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile112(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 (10) (new_not8=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x15 ==> new_takeWhile112(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.92/213.19 291.92/213.19 (11) (new_takeWhile112(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.92/213.19 291.92/213.19 (12) (new_takeWhile112(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 To summarize, we get the following constraints P__>=_ for the following pairs. 291.92/213.19 291.92/213.19 *new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 291.92/213.19 *(new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 *(new_takeWhile112(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 *(new_takeWhile112(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 291.92/213.19 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. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (697) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.19 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.19 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.19 new_not8 -> new_not4 291.92/213.19 new_not4 -> MyFalse 291.92/213.19 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.19 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.19 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.19 new_not11 -> new_not5 291.92/213.19 new_not5 -> MyTrue 291.92/213.19 new_not10 -> new_not5 291.92/213.19 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.19 291.92/213.19 The set Q consists of the following terms: 291.92/213.19 291.92/213.19 new_not10 291.92/213.19 new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.19 new_not7(x0, Main.Zero) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_not12(Main.Zero, Main.Zero) 291.92/213.19 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_not7(x0, Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.19 new_not4 291.92/213.19 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.19 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.19 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.19 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.19 new_not11 291.92/213.19 new_not5 291.92/213.19 291.92/213.19 We have to consider all minimal (P,Q,R)-chains. 291.92/213.19 ---------------------------------------- 291.92/213.19 291.92/213.19 (698) 291.92/213.19 Obligation: 291.92/213.19 Q DP problem: 291.92/213.19 The TRS P consists of the following rules: 291.92/213.19 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.19 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.92/213.19 291.92/213.19 The TRS R consists of the following rules: 291.92/213.19 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.19 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.19 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.19 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.19 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.92/213.20 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.92/213.20 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.92/213.20 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (699) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (700) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (701) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (702) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (703) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (704) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (705) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (706) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (707) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (708) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (709) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_primPlusInt1(x0, Main.Neg(x1)) 291.92/213.20 new_primPlusInt1(x0, Main.Pos(x1)) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (710) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (711) TransformationProof (EQUIVALENT) 291.92/213.20 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (712) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (713) DependencyGraphProof (EQUIVALENT) 291.92/213.20 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (714) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (715) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (716) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (717) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (718) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (719) TransformationProof (EQUIVALENT) 291.92/213.20 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (720) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (721) DependencyGraphProof (EQUIVALENT) 291.92/213.20 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (722) 291.92/213.20 Complex Obligation (AND) 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (723) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.20 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (724) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (725) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (726) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (727) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (728) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (729) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.20 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.20 new_not10 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.20 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (730) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (731) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (732) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not7(x0, Main.Zero) 291.92/213.20 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.20 new_not7(x0, Main.Succ(x1)) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (733) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (734) TransformationProof (EQUIVALENT) 291.92/213.20 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11)) 291.92/213.20 (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (735) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.20 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (736) DependencyGraphProof (EQUIVALENT) 291.92/213.20 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (737) 291.92/213.20 Complex Obligation (AND) 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (738) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (739) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (740) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (741) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (742) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_not4 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (743) TransformationProof (EQUIVALENT) 291.92/213.20 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (744) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_not4 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (745) QDPSizeChangeProof (EQUIVALENT) 291.92/213.20 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.92/213.20 291.92/213.20 Order:EMB rules! 291.92/213.20 291.92/213.20 AFS: 291.92/213.20 Main.Zero = Main.Zero 291.92/213.20 291.92/213.20 MyTrue = MyTrue 291.92/213.20 291.92/213.20 Main.Neg(x1) = x1 291.92/213.20 291.92/213.20 Main.Succ(x1) = Main.Succ(x1) 291.92/213.20 291.92/213.20 291.92/213.20 291.92/213.20 291.92/213.20 291.92/213.20 From the DPs we obtained the following set of size-change graphs: 291.92/213.20 *new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.92/213.20 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.92/213.20 291.92/213.20 291.92/213.20 291.92/213.20 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.92/213.20 none 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (746) 291.92/213.20 YES 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (747) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.20 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.20 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.20 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.20 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.20 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.20 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.20 new_not8 -> new_not4 291.92/213.20 new_not4 -> MyFalse 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 new_not10 -> new_not5 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (748) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (749) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (750) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_not10 291.92/213.20 new_not8 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Zero, Main.Zero) 291.92/213.20 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.20 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.20 new_not9(Main.Zero, x0) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.20 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.20 new_not4 291.92/213.20 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.20 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.20 new_not9(Main.Succ(x0), x1) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (751) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (752) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5)) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (753) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not11 -> new_not5 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (754) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (755) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not11 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (756) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_not11 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (757) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (758) TransformationProof (EQUIVALENT) 291.92/213.20 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue)) 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (759) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) 291.92/213.20 291.92/213.20 The TRS R consists of the following rules: 291.92/213.20 291.92/213.20 new_not5 -> MyTrue 291.92/213.20 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (760) UsableRulesProof (EQUIVALENT) 291.92/213.20 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. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (761) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) 291.92/213.20 291.92/213.20 R is empty. 291.92/213.20 The set Q consists of the following terms: 291.92/213.20 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (762) QReductionProof (EQUIVALENT) 291.92/213.20 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.20 291.92/213.20 new_not5 291.92/213.20 291.92/213.20 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (763) 291.92/213.20 Obligation: 291.92/213.20 Q DP problem: 291.92/213.20 The TRS P consists of the following rules: 291.92/213.20 291.92/213.20 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) 291.92/213.20 291.92/213.20 R is empty. 291.92/213.20 Q is empty. 291.92/213.20 We have to consider all minimal (P,Q,R)-chains. 291.92/213.20 ---------------------------------------- 291.92/213.20 291.92/213.20 (764) TransformationProof (EQUIVALENT) 291.92/213.20 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.20 291.92/213.20 (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue)) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (765) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) 291.92/213.21 291.92/213.21 R is empty. 291.92/213.21 Q is empty. 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (766) QDPSizeChangeProof (EQUIVALENT) 291.92/213.21 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.92/213.21 291.92/213.21 Order:EMB rules! 291.92/213.21 291.92/213.21 AFS: 291.92/213.21 Main.Zero = Main.Zero 291.92/213.21 291.92/213.21 MyTrue = MyTrue 291.92/213.21 291.92/213.21 Main.Neg(x1) = x1 291.92/213.21 291.92/213.21 Main.Pos(x1) = Main.Pos 291.92/213.21 291.92/213.21 Main.Succ(x1) = Main.Succ(x1) 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 From the DPs we obtained the following set of size-change graphs: 291.92/213.21 *new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) 291.92/213.21 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.92/213.21 none 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (767) 291.92/213.21 YES 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (768) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (769) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (770) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (771) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (772) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (773) TransformationProof (EQUIVALENT) 291.92/213.21 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (774) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (775) DependencyGraphProof (EQUIVALENT) 291.92/213.21 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (776) 291.92/213.21 Complex Obligation (AND) 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (777) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (778) UsableRulesProof (EQUIVALENT) 291.92/213.21 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. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (779) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (780) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (781) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (782) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (783) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (784) UsableRulesProof (EQUIVALENT) 291.92/213.21 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. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (785) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (786) QReductionProof (EQUIVALENT) 291.92/213.21 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (787) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (788) TransformationProof (EQUIVALENT) 291.92/213.21 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11)) 291.92/213.21 (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (789) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.21 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (790) DependencyGraphProof (EQUIVALENT) 291.92/213.21 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (791) 291.92/213.21 Complex Obligation (AND) 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (792) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (793) UsableRulesProof (EQUIVALENT) 291.92/213.21 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. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (794) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (795) QReductionProof (EQUIVALENT) 291.92/213.21 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.21 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (796) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_not4 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (797) TransformationProof (EQUIVALENT) 291.92/213.21 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (798) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_not4 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (799) QDPSizeChangeProof (EQUIVALENT) 291.92/213.21 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.92/213.21 291.92/213.21 Order:EMB rules! 291.92/213.21 291.92/213.21 AFS: 291.92/213.21 Main.Zero = Main.Zero 291.92/213.21 291.92/213.21 MyTrue = MyTrue 291.92/213.21 291.92/213.21 Main.Neg(x1) = x1 291.92/213.21 291.92/213.21 Main.Succ(x1) = Main.Succ(x1) 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 From the DPs we obtained the following set of size-change graphs: 291.92/213.21 *new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.92/213.21 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.92/213.21 none 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (800) 291.92/213.21 YES 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (801) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not10 -> new_not5 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (802) UsableRulesProof (EQUIVALENT) 291.92/213.21 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. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (803) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (804) QReductionProof (EQUIVALENT) 291.92/213.21 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (805) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (806) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5)) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (807) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (808) UsableRulesProof (EQUIVALENT) 291.92/213.21 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. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (809) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (810) QReductionProof (EQUIVALENT) 291.92/213.21 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.21 291.92/213.21 new_not11 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (811) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (812) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue)) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (813) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (814) UsableRulesProof (EQUIVALENT) 291.92/213.21 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. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (815) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) 291.92/213.21 291.92/213.21 R is empty. 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (816) QReductionProof (EQUIVALENT) 291.92/213.21 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.92/213.21 291.92/213.21 new_not5 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (817) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) 291.92/213.21 291.92/213.21 R is empty. 291.92/213.21 Q is empty. 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (818) TransformationProof (EQUIVALENT) 291.92/213.21 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue)) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (819) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) 291.92/213.21 291.92/213.21 R is empty. 291.92/213.21 Q is empty. 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (820) QDPSizeChangeProof (EQUIVALENT) 291.92/213.21 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.92/213.21 291.92/213.21 Order:EMB rules! 291.92/213.21 291.92/213.21 AFS: 291.92/213.21 Main.Zero = Main.Zero 291.92/213.21 291.92/213.21 MyTrue = MyTrue 291.92/213.21 291.92/213.21 Main.Neg(x1) = x1 291.92/213.21 291.92/213.21 Main.Pos(x1) = Main.Pos 291.92/213.21 291.92/213.21 Main.Succ(x1) = Main.Succ(x1) 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 From the DPs we obtained the following set of size-change graphs: 291.92/213.21 *new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) 291.92/213.21 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 291.92/213.21 291.92/213.21 291.92/213.21 291.92/213.21 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.92/213.21 none 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (821) 291.92/213.21 YES 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (822) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (823) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (824) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (825) TransformationProof (EQUIVALENT) 291.92/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (826) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (827) TransformationProof (EQUIVALENT) 291.92/213.21 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.92/213.21 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.92/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.92/213.21 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (828) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.92/213.21 new_not4 291.92/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not11 291.92/213.21 new_not5 291.92/213.21 new_not9(Main.Succ(x0), x1) 291.92/213.21 291.92/213.21 We have to consider all minimal (P,Q,R)-chains. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (829) DependencyGraphProof (EQUIVALENT) 291.92/213.21 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (830) 291.92/213.21 Complex Obligation (AND) 291.92/213.21 291.92/213.21 ---------------------------------------- 291.92/213.21 291.92/213.21 (831) 291.92/213.21 Obligation: 291.92/213.21 Q DP problem: 291.92/213.21 The TRS P consists of the following rules: 291.92/213.21 291.92/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.92/213.21 291.92/213.21 The TRS R consists of the following rules: 291.92/213.21 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.92/213.21 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.92/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.92/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.92/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.92/213.21 new_not10 -> new_not5 291.92/213.21 new_not5 -> MyTrue 291.92/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.92/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.92/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.92/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.92/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.92/213.21 new_not8 -> new_not4 291.92/213.21 new_not4 -> MyFalse 291.92/213.21 new_not11 -> new_not5 291.92/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.92/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.92/213.21 291.92/213.21 The set Q consists of the following terms: 291.92/213.21 291.92/213.21 new_not10 291.92/213.21 new_not8 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.92/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.92/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.92/213.21 new_not7(x0, Main.Zero) 291.92/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Zero, Main.Zero) 291.92/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.92/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.92/213.21 new_not7(x0, Main.Succ(x1)) 291.92/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.92/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.92/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.92/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.92/213.21 new_not9(Main.Zero, x0) 291.92/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.21 new_not4 291.93/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.21 new_not11 291.93/213.21 new_not5 291.93/213.21 new_not9(Main.Succ(x0), x1) 291.93/213.21 291.93/213.21 We have to consider all minimal (P,Q,R)-chains. 291.93/213.21 ---------------------------------------- 291.93/213.21 291.93/213.21 (832) UsableRulesProof (EQUIVALENT) 291.93/213.21 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. 291.93/213.21 ---------------------------------------- 291.93/213.21 291.93/213.21 (833) 291.93/213.21 Obligation: 291.93/213.21 Q DP problem: 291.93/213.21 The TRS P consists of the following rules: 291.93/213.21 291.93/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.21 291.93/213.21 The TRS R consists of the following rules: 291.93/213.21 291.93/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.21 new_not10 -> new_not5 291.93/213.21 new_not5 -> MyTrue 291.93/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.21 new_not8 -> new_not4 291.93/213.21 new_not4 -> MyFalse 291.93/213.21 new_not11 -> new_not5 291.93/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.21 291.93/213.21 The set Q consists of the following terms: 291.93/213.21 291.93/213.21 new_not10 291.93/213.21 new_not8 291.93/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.21 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.21 new_not7(x0, Main.Zero) 291.93/213.21 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.21 new_not12(Main.Zero, Main.Zero) 291.93/213.21 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.21 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.21 new_not7(x0, Main.Succ(x1)) 291.93/213.21 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.21 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.21 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.21 new_not9(Main.Zero, x0) 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.21 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.21 new_not4 291.93/213.21 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.21 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.21 new_not11 291.93/213.21 new_not5 291.93/213.21 new_not9(Main.Succ(x0), x1) 291.93/213.21 291.93/213.21 We have to consider all minimal (P,Q,R)-chains. 291.93/213.21 ---------------------------------------- 291.93/213.21 291.93/213.21 (834) TransformationProof (EQUIVALENT) 291.93/213.21 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.21 291.93/213.21 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.21 291.93/213.21 291.93/213.21 ---------------------------------------- 291.93/213.21 291.93/213.21 (835) 291.93/213.21 Obligation: 291.93/213.21 Q DP problem: 291.93/213.21 The TRS P consists of the following rules: 291.93/213.21 291.93/213.21 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.21 291.93/213.21 The TRS R consists of the following rules: 291.93/213.21 291.93/213.21 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.21 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.21 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.21 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.21 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.21 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.21 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.21 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.21 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.21 new_not10 -> new_not5 291.93/213.21 new_not5 -> MyTrue 291.93/213.21 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.21 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.21 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.21 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.21 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.21 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.21 new_not8 -> new_not4 291.93/213.21 new_not4 -> MyFalse 291.93/213.21 new_not11 -> new_not5 291.93/213.21 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.21 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.21 291.93/213.21 The set Q consists of the following terms: 291.93/213.21 291.93/213.21 new_not10 291.93/213.21 new_not8 291.93/213.21 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.21 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.21 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (836) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (837) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (838) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (839) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (840) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (841) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (842) TransformationProof (EQUIVALENT) 291.93/213.22 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11)) 291.93/213.22 (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (843) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.22 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (844) DependencyGraphProof (EQUIVALENT) 291.93/213.22 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (845) 291.93/213.22 Complex Obligation (AND) 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (846) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (847) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (848) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (849) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (850) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_not4 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (851) TransformationProof (EQUIVALENT) 291.93/213.22 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (852) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_not4 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (853) QDPSizeChangeProof (EQUIVALENT) 291.93/213.22 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.22 291.93/213.22 Order:EMB rules! 291.93/213.22 291.93/213.22 AFS: 291.93/213.22 Main.Zero = Main.Zero 291.93/213.22 291.93/213.22 MyTrue = MyTrue 291.93/213.22 291.93/213.22 Main.Neg(x1) = x1 291.93/213.22 291.93/213.22 Main.Succ(x1) = Main.Succ(x1) 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 From the DPs we obtained the following set of size-change graphs: 291.93/213.22 *new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.22 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.22 none 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (854) 291.93/213.22 YES 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (855) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (856) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (857) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (858) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (859) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (860) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5)) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (861) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (862) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (863) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (864) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_not11 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (865) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (866) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue)) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (867) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (868) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (869) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.22 291.93/213.22 R is empty. 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (870) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_not5 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (871) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.22 291.93/213.22 R is empty. 291.93/213.22 Q is empty. 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (872) TransformationProof (EQUIVALENT) 291.93/213.22 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue)) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (873) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) 291.93/213.22 291.93/213.22 R is empty. 291.93/213.22 Q is empty. 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (874) QDPSizeChangeProof (EQUIVALENT) 291.93/213.22 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.22 291.93/213.22 Order:EMB rules! 291.93/213.22 291.93/213.22 AFS: 291.93/213.22 Main.Zero = Main.Zero 291.93/213.22 291.93/213.22 MyTrue = MyTrue 291.93/213.22 291.93/213.22 Main.Neg(x1) = x1 291.93/213.22 291.93/213.22 Main.Pos(x1) = Main.Pos 291.93/213.22 291.93/213.22 Main.Succ(x1) = Main.Succ(x1) 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 From the DPs we obtained the following set of size-change graphs: 291.93/213.22 *new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) 291.93/213.22 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.22 none 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (875) 291.93/213.22 YES 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (876) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (877) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (878) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (879) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (880) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (881) TransformationProof (EQUIVALENT) 291.93/213.22 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (882) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (883) DependencyGraphProof (EQUIVALENT) 291.93/213.22 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (884) 291.93/213.22 Complex Obligation (AND) 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (885) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (886) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (887) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (888) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (889) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (890) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (891) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (892) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (893) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (894) UsableRulesProof (EQUIVALENT) 291.93/213.22 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. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (895) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (896) QReductionProof (EQUIVALENT) 291.93/213.22 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (897) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (898) TransformationProof (EQUIVALENT) 291.93/213.22 By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))),new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2))))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (899) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not10 -> new_not5 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (900) QDPSizeChangeProof (EQUIVALENT) 291.93/213.22 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.22 291.93/213.22 Order:EMB rules! 291.93/213.22 291.93/213.22 AFS: 291.93/213.22 Main.Zero = Main.Zero 291.93/213.22 291.93/213.22 MyTrue = MyTrue 291.93/213.22 291.93/213.22 Main.Neg(x1) = x1 291.93/213.22 291.93/213.22 Main.Succ(x1) = Main.Succ(x1) 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 From the DPs we obtained the following set of size-change graphs: 291.93/213.22 *new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.22 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.22 none 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (901) 291.93/213.22 YES 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (902) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (903) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (904) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (905) TransformationProof (EQUIVALENT) 291.93/213.22 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.22 291.93/213.22 (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.22 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (906) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.22 291.93/213.22 The TRS R consists of the following rules: 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.22 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.22 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.22 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.22 new_not10 -> new_not5 291.93/213.22 new_not5 -> MyTrue 291.93/213.22 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.22 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.22 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.22 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.22 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.22 new_not8 -> new_not4 291.93/213.22 new_not4 -> MyFalse 291.93/213.22 new_not11 -> new_not5 291.93/213.22 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.22 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 291.93/213.22 The set Q consists of the following terms: 291.93/213.22 291.93/213.22 new_not10 291.93/213.22 new_not8 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.22 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.22 new_not7(x0, Main.Zero) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Zero, Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.22 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.22 new_not7(x0, Main.Succ(x1)) 291.93/213.22 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.22 new_not9(Main.Zero, x0) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.22 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.22 new_not4 291.93/213.22 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.22 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.22 new_not11 291.93/213.22 new_not5 291.93/213.22 new_not9(Main.Succ(x0), x1) 291.93/213.22 291.93/213.22 We have to consider all minimal (P,Q,R)-chains. 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (907) QDPSizeChangeProof (EQUIVALENT) 291.93/213.22 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.22 291.93/213.22 Order:Polynomial interpretation [POLO]: 291.93/213.22 291.93/213.22 POL(Main.Neg(x_1)) = x_1 291.93/213.22 POL(Main.Pos(x_1)) = 0 291.93/213.22 POL(Main.Succ(x_1)) = 1 + x_1 291.93/213.22 POL(Main.Zero) = 0 291.93/213.22 POL(MyTrue) = 1 291.93/213.22 POL(new_primMinusNat0(x_1, x_2)) = x_2 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 From the DPs we obtained the following set of size-change graphs: 291.93/213.22 *new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.22 The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 291.93/213.22 291.93/213.22 291.93/213.22 291.93/213.22 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.22 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.22 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.22 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (908) 291.93/213.22 YES 291.93/213.22 291.93/213.22 ---------------------------------------- 291.93/213.22 291.93/213.22 (909) 291.93/213.22 Obligation: 291.93/213.22 Q DP problem: 291.93/213.22 The TRS P consists of the following rules: 291.93/213.22 291.93/213.22 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat1(Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_primPlusNat1(Main.Zero) 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 new_primPlusNat1(Main.Succ(x0)) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (910) UsableRulesProof (EQUIVALENT) 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (911) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat1(Main.Zero) -> Main.Zero 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_primPlusNat1(Main.Zero) 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 new_primPlusNat1(Main.Succ(x0)) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (912) TransformationProof (EQUIVALENT) 291.93/213.23 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (913) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat1(Main.Zero) -> Main.Zero 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_primPlusNat1(Main.Zero) 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 new_primPlusNat1(Main.Succ(x0)) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (914) TransformationProof (EQUIVALENT) 291.93/213.23 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (915) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat1(Main.Zero) -> Main.Zero 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_primPlusNat1(Main.Zero) 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 new_primPlusNat1(Main.Succ(x0)) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (916) UsableRulesProof (EQUIVALENT) 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (917) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_primPlusNat1(Main.Zero) 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 new_primPlusNat1(Main.Succ(x0)) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (918) QReductionProof (EQUIVALENT) 291.93/213.23 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.23 291.93/213.23 new_primPlusNat1(Main.Zero) 291.93/213.23 new_primPlusNat1(Main.Succ(x0)) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (919) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (920) TransformationProof (EQUIVALENT) 291.93/213.23 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (921) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (922) DependencyGraphProof (EQUIVALENT) 291.93/213.23 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (923) 291.93/213.23 Complex Obligation (AND) 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (924) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.23 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (925) UsableRulesProof (EQUIVALENT) 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (926) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (927) QReductionProof (EQUIVALENT) 291.93/213.23 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.23 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (928) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (929) TransformationProof (EQUIVALENT) 291.93/213.23 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (930) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (931) TransformationProof (EQUIVALENT) 291.93/213.23 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (932) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.23 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (933) UsableRulesProof (EQUIVALENT) 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (934) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (935) QReductionProof (EQUIVALENT) 291.93/213.23 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.23 291.93/213.23 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.23 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (936) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (937) TransformationProof (EQUIVALENT) 291.93/213.23 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (938) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (939) DependencyGraphProof (EQUIVALENT) 291.93/213.23 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (940) 291.93/213.23 Complex Obligation (AND) 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (941) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (942) UsableRulesProof (EQUIVALENT) 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (943) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (944) QReductionProof (EQUIVALENT) 291.93/213.23 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.23 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_not9(Main.Succ(x0), x1) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (945) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (946) TransformationProof (EQUIVALENT) 291.93/213.23 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (947) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (948) TransformationProof (EQUIVALENT) 291.93/213.23 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (949) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (950) UsableRulesProof (EQUIVALENT) 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (951) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (952) QReductionProof (EQUIVALENT) 291.93/213.23 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (953) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (954) TransformationProof (EQUIVALENT) 291.93/213.23 By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.23 291.93/213.23 (new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))),new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2))))) 291.93/213.23 291.93/213.23 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (955) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (956) InductionCalculusProof (EQUIVALENT) 291.93/213.23 Note that final constraints are written in bold face. 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 For Pair new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) the following chains were created: 291.93/213.23 *We consider the chain new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1)))), new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), new_flip1(x2, Main.Pos(Main.Succ(x3)))) which results in the following constraint: 291.93/213.23 291.93/213.23 (1) (new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))=new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.93/213.23 291.93/213.23 (2) (Main.Pos(Main.Succ(x1))=x4 & new_flip1(x0, x4)=MyTrue ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x4)=MyTrue which results in the following new constraints: 291.93/213.23 291.93/213.23 (3) (new_not8=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x5)) ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 (4) (new_not7(x7, x8)=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x7)) ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.93/213.23 291.93/213.23 (5) (new_not8=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (4) using rules (I), (II), (III) which results in the following new constraint: 291.93/213.23 291.93/213.23 (6) (new_not7(x7, x8)=MyTrue ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x7))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.93/213.23 291.93/213.23 (7) (new_not4=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.93/213.23 291.93/213.23 (8) (new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x7, x8)=MyTrue which results in the following new constraints: 291.93/213.23 291.93/213.23 (9) (new_not12(x10, x9)=MyTrue ==> new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.23 291.93/213.23 (10) (new_not8=MyTrue ==> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.93/213.23 291.93/213.23 (11) (new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.93/213.23 291.93/213.23 (12) (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 To summarize, we get the following constraints P__>=_ for the following pairs. 291.93/213.23 291.93/213.23 *new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.23 291.93/213.23 *(new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.23 291.93/213.23 291.93/213.23 *(new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.23 291.93/213.23 291.93/213.23 *(new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 291.93/213.23 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. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (957) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not10 -> new_not5 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.23 new_not4 291.93/213.23 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_not11 291.93/213.23 new_not5 291.93/213.23 291.93/213.23 We have to consider all minimal (P,Q,R)-chains. 291.93/213.23 ---------------------------------------- 291.93/213.23 291.93/213.23 (958) 291.93/213.23 Obligation: 291.93/213.23 Q DP problem: 291.93/213.23 The TRS P consists of the following rules: 291.93/213.23 291.93/213.23 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.23 291.93/213.23 The TRS R consists of the following rules: 291.93/213.23 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.23 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.23 new_not10 -> new_not5 291.93/213.23 new_not5 -> MyTrue 291.93/213.23 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.23 new_not11 -> new_not5 291.93/213.23 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.23 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.23 new_not8 -> new_not4 291.93/213.23 new_not4 -> MyFalse 291.93/213.23 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.23 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.23 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.23 291.93/213.23 The set Q consists of the following terms: 291.93/213.23 291.93/213.23 new_not10 291.93/213.23 new_not8 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.23 new_not7(x0, Main.Zero) 291.93/213.23 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.23 new_not12(Main.Zero, Main.Zero) 291.93/213.23 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.23 new_not7(x0, Main.Succ(x1)) 291.93/213.23 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.23 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.23 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.23 new_not9(Main.Zero, x0) 291.93/213.23 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.23 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (959) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (960) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (961) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (962) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (963) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (964) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (965) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (966) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (967) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (968) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (969) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (970) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (971) TransformationProof (EQUIVALENT) 291.93/213.24 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.24 (new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8)) 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (972) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8) 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (973) DependencyGraphProof (EQUIVALENT) 291.93/213.24 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (974) 291.93/213.24 Complex Obligation (AND) 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (975) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (976) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (977) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (978) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (979) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (980) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (981) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (982) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (983) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (984) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (985) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (986) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (987) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (988) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (989) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (990) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (991) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 Q is empty. 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (992) TransformationProof (EQUIVALENT) 291.93/213.24 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (993) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 Q is empty. 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (994) NonTerminationLoopProof (COMPLETE) 291.93/213.24 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.24 Found a loop by semiunifying a rule from P directly. 291.93/213.24 291.93/213.24 s = new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.24 * Matcher: [ ] 291.93/213.24 * Semiunifier: [ ] 291.93/213.24 291.93/213.24 -------------------------------------------------------------------------------- 291.93/213.24 Rewriting sequence 291.93/213.24 291.93/213.24 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.24 291.93/213.24 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (995) 291.93/213.24 NO 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (996) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (997) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (998) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (999) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1000) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1001) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1002) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1003) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1004) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1005) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1006) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1007) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1008) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1009) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1010) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1011) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not11 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1012) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1013) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1014) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1015) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1016) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1017) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1018) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 Q is empty. 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1019) TransformationProof (EQUIVALENT) 291.93/213.24 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1020) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 Q is empty. 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1021) NonTerminationLoopProof (COMPLETE) 291.93/213.24 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.24 Found a loop by semiunifying a rule from P directly. 291.93/213.24 291.93/213.24 s = new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.24 * Matcher: [ ] 291.93/213.24 * Semiunifier: [ ] 291.93/213.24 291.93/213.24 -------------------------------------------------------------------------------- 291.93/213.24 Rewriting sequence 291.93/213.24 291.93/213.24 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.24 291.93/213.24 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1022) 291.93/213.24 NO 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1023) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1024) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1025) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1026) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1027) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1028) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1029) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1030) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1031) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1032) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1033) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1034) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1035) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1036) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1037) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1038) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_not5 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1039) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 Q is empty. 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1040) TransformationProof (EQUIVALENT) 291.93/213.24 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1041) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 R is empty. 291.93/213.24 Q is empty. 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1042) NonTerminationLoopProof (COMPLETE) 291.93/213.24 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.24 Found a loop by semiunifying a rule from P directly. 291.93/213.24 291.93/213.24 s = new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.24 291.93/213.24 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.24 * Matcher: [ ] 291.93/213.24 * Semiunifier: [ ] 291.93/213.24 291.93/213.24 -------------------------------------------------------------------------------- 291.93/213.24 Rewriting sequence 291.93/213.24 291.93/213.24 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.24 291.93/213.24 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1043) 291.93/213.24 NO 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1044) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.24 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.24 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.24 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.24 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1045) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1046) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1047) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1048) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1049) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1050) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1051) TransformationProof (EQUIVALENT) 291.93/213.24 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1052) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.24 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1053) UsableRulesProof (EQUIVALENT) 291.93/213.24 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. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1054) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1055) QReductionProof (EQUIVALENT) 291.93/213.24 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.24 291.93/213.24 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.24 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.24 291.93/213.24 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1056) 291.93/213.24 Obligation: 291.93/213.24 Q DP problem: 291.93/213.24 The TRS P consists of the following rules: 291.93/213.24 291.93/213.24 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) 291.93/213.24 291.93/213.24 The TRS R consists of the following rules: 291.93/213.24 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.24 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.24 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.24 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.24 new_not10 -> new_not5 291.93/213.24 new_not5 -> MyTrue 291.93/213.24 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.24 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.24 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.24 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.24 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.24 new_not8 -> new_not4 291.93/213.24 new_not4 -> MyFalse 291.93/213.24 new_not11 -> new_not5 291.93/213.24 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.24 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.24 291.93/213.24 The set Q consists of the following terms: 291.93/213.24 291.93/213.24 new_not10 291.93/213.24 new_not8 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.24 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.24 new_not7(x0, Main.Zero) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Zero, Main.Zero) 291.93/213.24 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.24 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.24 new_not7(x0, Main.Succ(x1)) 291.93/213.24 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.24 new_not9(Main.Zero, x0) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.24 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.24 new_not4 291.93/213.24 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.24 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.24 new_not11 291.93/213.24 new_not5 291.93/213.24 new_not9(Main.Succ(x0), x1) 291.93/213.24 291.93/213.24 We have to consider all minimal (P,Q,R)-chains. 291.93/213.24 ---------------------------------------- 291.93/213.24 291.93/213.24 (1057) TransformationProof (EQUIVALENT) 291.93/213.24 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.24 291.93/213.24 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.25 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1058) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1059) DependencyGraphProof (EQUIVALENT) 291.93/213.25 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1060) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1061) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1062) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1063) TransformationProof (EQUIVALENT) 291.93/213.25 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1064) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1065) TransformationProof (EQUIVALENT) 291.93/213.25 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1066) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1067) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1068) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1069) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1070) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1071) TransformationProof (EQUIVALENT) 291.93/213.25 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11)) 291.93/213.25 (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1072) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.25 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1073) DependencyGraphProof (EQUIVALENT) 291.93/213.25 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1074) 291.93/213.25 Complex Obligation (AND) 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1075) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1076) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1077) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1078) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1079) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_not4 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1080) TransformationProof (EQUIVALENT) 291.93/213.25 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1081) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_not4 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1082) MNOCProof (EQUIVALENT) 291.93/213.25 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1083) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 Q is empty. 291.93/213.25 We have to consider all (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1084) NonTerminationLoopProof (COMPLETE) 291.93/213.25 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.25 Found a loop by narrowing to the left: 291.93/213.25 291.93/213.25 s = new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, wy2000)) evaluates to t =new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.25 291.93/213.25 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.25 * Matcher: [ ] 291.93/213.25 * Semiunifier: [z0 / Main.Zero, wy2000 / z2] 291.93/213.25 291.93/213.25 -------------------------------------------------------------------------------- 291.93/213.25 Rewriting sequence 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) 291.93/213.25 with rule new_not9(Main.Zero, wy2000) -> new_not11 at position [5] and matcher [wy2000 / z2] 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) 291.93/213.25 with rule new_not11 -> new_not5 at position [5] and matcher [ ] 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.25 with rule new_not5 -> MyTrue at position [5] and matcher [ ] 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) 291.93/213.25 with rule new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.25 291.93/213.25 Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence 291.93/213.25 291.93/213.25 291.93/213.25 All these steps are and every following step will be a correct step w.r.t to Q. 291.93/213.25 291.93/213.25 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1085) 291.93/213.25 NO 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1086) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not10 -> new_not5 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1087) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1088) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1089) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1090) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1091) TransformationProof (EQUIVALENT) 291.93/213.25 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5)) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1092) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1093) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1094) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1095) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_not11 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1096) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1097) TransformationProof (EQUIVALENT) 291.93/213.25 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue)) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1098) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1099) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1100) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.25 291.93/213.25 R is empty. 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1101) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_not5 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1102) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.25 291.93/213.25 R is empty. 291.93/213.25 Q is empty. 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1103) TransformationProof (EQUIVALENT) 291.93/213.25 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue)) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1104) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.25 291.93/213.25 R is empty. 291.93/213.25 Q is empty. 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1105) NonTerminationLoopProof (COMPLETE) 291.93/213.25 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.25 Found a loop by semiunifying a rule from P directly. 291.93/213.25 291.93/213.25 s = new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.25 291.93/213.25 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.25 * Matcher: [ ] 291.93/213.25 * Semiunifier: [ ] 291.93/213.25 291.93/213.25 -------------------------------------------------------------------------------- 291.93/213.25 Rewriting sequence 291.93/213.25 291.93/213.25 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) to new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue). 291.93/213.25 291.93/213.25 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1106) 291.93/213.25 NO 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1107) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.93/213.25 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusNat1(Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_primPlusNat1(Main.Zero) 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 new_primPlusNat1(Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1108) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1109) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_primPlusNat1(Main.Zero) 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 new_primPlusNat1(Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1110) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_primPlusNat1(Main.Zero) 291.93/213.25 new_primPlusNat1(Main.Succ(x0)) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1111) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1112) TransformationProof (EQUIVALENT) 291.93/213.25 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))),new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1)))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1113) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1114) TransformationProof (EQUIVALENT) 291.93/213.25 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))),new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1)))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1115) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1116) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1117) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1118) QReductionProof (EQUIVALENT) 291.93/213.25 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.25 291.93/213.25 new_psMyInt1(Main.Neg(x0), x1) 291.93/213.25 new_psMyInt1(Main.Pos(x0), x1) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1119) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1120) TransformationProof (EQUIVALENT) 291.93/213.25 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.25 291.93/213.25 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1)))) 291.93/213.25 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) 291.93/213.25 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1121) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.25 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.25 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.25 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.25 new_not10 -> new_not5 291.93/213.25 new_not5 -> MyTrue 291.93/213.25 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.25 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.25 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.25 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.25 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.25 new_not8 -> new_not4 291.93/213.25 new_not4 -> MyFalse 291.93/213.25 new_not11 -> new_not5 291.93/213.25 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.25 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.25 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.25 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.25 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.25 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.25 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.25 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.25 291.93/213.25 The set Q consists of the following terms: 291.93/213.25 291.93/213.25 new_not10 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.25 new_not8 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.25 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_not7(x0, Main.Zero) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_not12(Main.Zero, Main.Zero) 291.93/213.25 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.25 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_not7(x0, Main.Succ(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.25 new_not9(Main.Zero, x0) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.25 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.25 new_not4 291.93/213.25 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.25 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.25 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.25 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.25 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.25 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.25 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.25 new_not11 291.93/213.25 new_not5 291.93/213.25 new_not9(Main.Succ(x0), x1) 291.93/213.25 291.93/213.25 We have to consider all minimal (P,Q,R)-chains. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1122) DependencyGraphProof (EQUIVALENT) 291.93/213.25 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1123) 291.93/213.25 Complex Obligation (AND) 291.93/213.25 291.93/213.25 ---------------------------------------- 291.93/213.25 291.93/213.25 (1124) 291.93/213.25 Obligation: 291.93/213.25 Q DP problem: 291.93/213.25 The TRS P consists of the following rules: 291.93/213.25 291.93/213.25 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.25 291.93/213.25 The TRS R consists of the following rules: 291.93/213.25 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.25 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.26 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1125) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1126) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1127) QReductionProof (EQUIVALENT) 291.93/213.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.26 291.93/213.26 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.26 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1128) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1129) TransformationProof (EQUIVALENT) 291.93/213.26 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1130) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1131) TransformationProof (EQUIVALENT) 291.93/213.26 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1132) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1133) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1134) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1135) QReductionProof (EQUIVALENT) 291.93/213.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.26 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.26 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.26 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1136) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1137) TransformationProof (EQUIVALENT) 291.93/213.26 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1138) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1139) DependencyGraphProof (EQUIVALENT) 291.93/213.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1140) 291.93/213.26 Complex Obligation (AND) 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1141) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.26 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1142) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1143) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1144) QReductionProof (EQUIVALENT) 291.93/213.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.26 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1145) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1146) TransformationProof (EQUIVALENT) 291.93/213.26 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1147) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1148) TransformationProof (EQUIVALENT) 291.93/213.26 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1149) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.26 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1150) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1151) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1152) QReductionProof (EQUIVALENT) 291.93/213.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.26 291.93/213.26 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.26 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1153) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1154) TransformationProof (EQUIVALENT) 291.93/213.26 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1155) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1156) DependencyGraphProof (EQUIVALENT) 291.93/213.26 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1157) 291.93/213.26 Complex Obligation (AND) 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1158) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.26 new_not10 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1159) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1160) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1161) QReductionProof (EQUIVALENT) 291.93/213.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.26 291.93/213.26 new_not9(Main.Zero, x0) 291.93/213.26 new_not9(Main.Succ(x0), x1) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1162) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1163) TransformationProof (EQUIVALENT) 291.93/213.26 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1164) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1165) TransformationProof (EQUIVALENT) 291.93/213.26 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1166) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1167) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1168) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1169) QReductionProof (EQUIVALENT) 291.93/213.26 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.26 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.26 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1170) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1171) TransformationProof (EQUIVALENT) 291.93/213.26 By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.26 291.93/213.26 (new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))),new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2))))) 291.93/213.26 291.93/213.26 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1172) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_not4 291.93/213.26 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not11 291.93/213.26 new_not5 291.93/213.26 291.93/213.26 We have to consider all minimal (P,Q,R)-chains. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1173) InductionCalculusProof (EQUIVALENT) 291.93/213.26 Note that final constraints are written in bold face. 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 For Pair new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) the following chains were created: 291.93/213.26 *We consider the chain new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1)))), new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), new_flip1(x2, Main.Pos(Main.Succ(x3)))) which results in the following constraint: 291.93/213.26 291.93/213.26 (1) (new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))=new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.93/213.26 291.93/213.26 (2) (Main.Pos(Main.Succ(x1))=x4 & new_flip1(x0, x4)=MyTrue ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x4)=MyTrue which results in the following new constraints: 291.93/213.26 291.93/213.26 (3) (new_not8=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x5)) ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 (4) (new_not7(x7, x8)=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x7)) ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.93/213.26 291.93/213.26 (5) (new_not8=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (4) using rules (I), (II), (III) which results in the following new constraint: 291.93/213.26 291.93/213.26 (6) (new_not7(x7, x8)=MyTrue ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x7)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x7)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x7))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.93/213.26 291.93/213.26 (7) (new_not4=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.93/213.26 291.93/213.26 (8) (new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x7, x8)=MyTrue which results in the following new constraints: 291.93/213.26 291.93/213.26 (9) (new_not12(x10, x9)=MyTrue ==> new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.26 291.93/213.26 (10) (new_not8=MyTrue ==> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.93/213.26 291.93/213.26 (11) (new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.93/213.26 291.93/213.26 (12) (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 To summarize, we get the following constraints P__>=_ for the following pairs. 291.93/213.26 291.93/213.26 *new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.26 291.93/213.26 *(new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.26 291.93/213.26 291.93/213.26 *(new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.26 291.93/213.26 291.93/213.26 *(new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.26 291.93/213.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. 291.93/213.26 ---------------------------------------- 291.93/213.26 291.93/213.26 (1174) 291.93/213.26 Obligation: 291.93/213.26 Q DP problem: 291.93/213.26 The TRS P consists of the following rules: 291.93/213.26 291.93/213.26 new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.26 291.93/213.26 The TRS R consists of the following rules: 291.93/213.26 291.93/213.26 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.26 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.26 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.26 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.26 new_not8 -> new_not4 291.93/213.26 new_not4 -> MyFalse 291.93/213.26 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.26 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.26 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.26 new_not11 -> new_not5 291.93/213.26 new_not5 -> MyTrue 291.93/213.26 new_not10 -> new_not5 291.93/213.26 291.93/213.26 The set Q consists of the following terms: 291.93/213.26 291.93/213.26 new_not10 291.93/213.26 new_not8 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.26 new_not7(x0, Main.Zero) 291.93/213.26 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Zero, Main.Zero) 291.93/213.26 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.26 new_not7(x0, Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.26 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.26 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.26 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1175) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1176) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1177) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1178) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1179) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1180) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1181) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1182) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1183) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1184) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1185) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1186) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1187) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1188) TransformationProof (EQUIVALENT) 291.93/213.27 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.27 (new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8)) 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1189) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8) 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1190) DependencyGraphProof (EQUIVALENT) 291.93/213.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1191) 291.93/213.27 Complex Obligation (AND) 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1192) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1193) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1194) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1195) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1196) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1197) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1198) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1199) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1200) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1201) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1202) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1203) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1204) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1205) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1206) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1207) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1208) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 Q is empty. 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1209) TransformationProof (EQUIVALENT) 291.93/213.27 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1210) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 Q is empty. 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1211) NonTerminationLoopProof (COMPLETE) 291.93/213.27 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.27 Found a loop by semiunifying a rule from P directly. 291.93/213.27 291.93/213.27 s = new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.27 * Matcher: [ ] 291.93/213.27 * Semiunifier: [ ] 291.93/213.27 291.93/213.27 -------------------------------------------------------------------------------- 291.93/213.27 Rewriting sequence 291.93/213.27 291.93/213.27 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.27 291.93/213.27 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1212) 291.93/213.27 NO 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1213) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1214) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1215) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1216) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1217) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1218) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1219) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1220) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1221) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1222) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1223) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1224) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1225) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1226) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1227) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1228) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not11 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1229) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1230) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1231) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1232) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1233) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1234) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1235) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 Q is empty. 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1236) TransformationProof (EQUIVALENT) 291.93/213.27 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1237) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 Q is empty. 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1238) NonTerminationLoopProof (COMPLETE) 291.93/213.27 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.27 Found a loop by semiunifying a rule from P directly. 291.93/213.27 291.93/213.27 s = new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.27 * Matcher: [ ] 291.93/213.27 * Semiunifier: [ ] 291.93/213.27 291.93/213.27 -------------------------------------------------------------------------------- 291.93/213.27 Rewriting sequence 291.93/213.27 291.93/213.27 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.27 291.93/213.27 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1239) 291.93/213.27 NO 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1240) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1241) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1242) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1243) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1244) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1245) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1246) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1247) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1248) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1249) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1250) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1251) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1252) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1253) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1254) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1255) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_not5 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1256) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 Q is empty. 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1257) TransformationProof (EQUIVALENT) 291.93/213.27 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1258) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 R is empty. 291.93/213.27 Q is empty. 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1259) NonTerminationLoopProof (COMPLETE) 291.93/213.27 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.27 Found a loop by semiunifying a rule from P directly. 291.93/213.27 291.93/213.27 s = new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.27 291.93/213.27 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.27 * Matcher: [ ] 291.93/213.27 * Semiunifier: [ ] 291.93/213.27 291.93/213.27 -------------------------------------------------------------------------------- 291.93/213.27 Rewriting sequence 291.93/213.27 291.93/213.27 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.27 291.93/213.27 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1260) 291.93/213.27 NO 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1261) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.27 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.27 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.27 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1262) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1263) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1264) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1265) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1266) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1267) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1268) TransformationProof (EQUIVALENT) 291.93/213.27 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.27 291.93/213.27 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1269) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.27 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1270) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1271) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.27 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.27 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.27 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.27 new_not10 -> new_not5 291.93/213.27 new_not5 -> MyTrue 291.93/213.27 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.27 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.27 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.27 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.27 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.27 new_not8 -> new_not4 291.93/213.27 new_not4 -> MyFalse 291.93/213.27 new_not11 -> new_not5 291.93/213.27 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.27 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.27 291.93/213.27 The set Q consists of the following terms: 291.93/213.27 291.93/213.27 new_not10 291.93/213.27 new_not8 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.27 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.27 new_not7(x0, Main.Zero) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Zero, Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.27 new_not7(x0, Main.Succ(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.27 new_not9(Main.Zero, x0) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.27 new_not4 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.27 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.27 new_not11 291.93/213.27 new_not5 291.93/213.27 new_not9(Main.Succ(x0), x1) 291.93/213.27 291.93/213.27 We have to consider all minimal (P,Q,R)-chains. 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1272) QReductionProof (EQUIVALENT) 291.93/213.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.27 291.93/213.27 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.27 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.27 291.93/213.27 291.93/213.27 ---------------------------------------- 291.93/213.27 291.93/213.27 (1273) 291.93/213.27 Obligation: 291.93/213.27 Q DP problem: 291.93/213.27 The TRS P consists of the following rules: 291.93/213.27 291.93/213.27 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.27 291.93/213.27 The TRS R consists of the following rules: 291.93/213.27 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.27 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.27 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1274) TransformationProof (EQUIVALENT) 291.93/213.28 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1275) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1276) DependencyGraphProof (EQUIVALENT) 291.93/213.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1277) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1278) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1279) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1280) TransformationProof (EQUIVALENT) 291.93/213.28 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1281) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1282) TransformationProof (EQUIVALENT) 291.93/213.28 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1283) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1284) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1285) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1286) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1287) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1288) TransformationProof (EQUIVALENT) 291.93/213.28 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11)) 291.93/213.28 (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1289) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.28 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1290) DependencyGraphProof (EQUIVALENT) 291.93/213.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1291) 291.93/213.28 Complex Obligation (AND) 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1292) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1293) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1294) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1295) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1296) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_not4 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1297) TransformationProof (EQUIVALENT) 291.93/213.28 By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1298) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_not4 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1299) MNOCProof (EQUIVALENT) 291.93/213.28 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1300) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 Q is empty. 291.93/213.28 We have to consider all (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1301) NonTerminationLoopProof (COMPLETE) 291.93/213.28 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.28 Found a loop by narrowing to the left: 291.93/213.28 291.93/213.28 s = new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, wy2000)) evaluates to t =new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.28 291.93/213.28 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.28 * Matcher: [ ] 291.93/213.28 * Semiunifier: [z0 / Main.Zero, wy2000 / z2] 291.93/213.28 291.93/213.28 -------------------------------------------------------------------------------- 291.93/213.28 Rewriting sequence 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) 291.93/213.28 with rule new_not9(Main.Zero, wy2000) -> new_not11 at position [5] and matcher [wy2000 / z2] 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) 291.93/213.28 with rule new_not11 -> new_not5 at position [5] and matcher [ ] 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.28 with rule new_not5 -> MyTrue at position [5] and matcher [ ] 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) 291.93/213.28 with rule new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.28 291.93/213.28 Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence 291.93/213.28 291.93/213.28 291.93/213.28 All these steps are and every following step will be a correct step w.r.t to Q. 291.93/213.28 291.93/213.28 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1302) 291.93/213.28 NO 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1303) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not10 -> new_not5 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1304) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1305) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1306) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1307) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1308) TransformationProof (EQUIVALENT) 291.93/213.28 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5)) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1309) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1310) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1311) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1312) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_not11 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1313) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1314) TransformationProof (EQUIVALENT) 291.93/213.28 By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue)) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1315) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1316) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1317) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.28 291.93/213.28 R is empty. 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1318) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_not5 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1319) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.28 291.93/213.28 R is empty. 291.93/213.28 Q is empty. 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1320) TransformationProof (EQUIVALENT) 291.93/213.28 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue)) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1321) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.28 291.93/213.28 R is empty. 291.93/213.28 Q is empty. 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1322) NonTerminationLoopProof (COMPLETE) 291.93/213.28 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.28 Found a loop by semiunifying a rule from P directly. 291.93/213.28 291.93/213.28 s = new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.28 291.93/213.28 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.28 * Matcher: [ ] 291.93/213.28 * Semiunifier: [ ] 291.93/213.28 291.93/213.28 -------------------------------------------------------------------------------- 291.93/213.28 Rewriting sequence 291.93/213.28 291.93/213.28 The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) to new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue). 291.93/213.28 291.93/213.28 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1323) 291.93/213.28 NO 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1324) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.28 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1325) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1326) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1327) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1328) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1329) TransformationProof (EQUIVALENT) 291.93/213.28 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1)))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1330) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1331) TransformationProof (EQUIVALENT) 291.93/213.28 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1)))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1332) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1333) UsableRulesProof (EQUIVALENT) 291.93/213.28 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. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1334) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1335) QReductionProof (EQUIVALENT) 291.93/213.28 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.28 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.28 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.28 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1336) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1337) TransformationProof (EQUIVALENT) 291.93/213.28 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.28 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) 291.93/213.28 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.28 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1338) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.28 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.28 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.28 291.93/213.28 The TRS R consists of the following rules: 291.93/213.28 291.93/213.28 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.28 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.28 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.28 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.28 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.28 new_not10 -> new_not5 291.93/213.28 new_not5 -> MyTrue 291.93/213.28 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.28 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.28 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.28 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.28 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.28 new_not8 -> new_not4 291.93/213.28 new_not4 -> MyFalse 291.93/213.28 new_not11 -> new_not5 291.93/213.28 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.28 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.28 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.28 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.28 291.93/213.28 The set Q consists of the following terms: 291.93/213.28 291.93/213.28 new_not10 291.93/213.28 new_not8 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.28 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_not7(x0, Main.Zero) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_not12(Main.Zero, Main.Zero) 291.93/213.28 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_not7(x0, Main.Succ(x1)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.28 new_not9(Main.Zero, x0) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.28 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.28 new_not4 291.93/213.28 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.28 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.28 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.28 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.28 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.28 new_not11 291.93/213.28 new_not5 291.93/213.28 new_not9(Main.Succ(x0), x1) 291.93/213.28 291.93/213.28 We have to consider all minimal (P,Q,R)-chains. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1339) DependencyGraphProof (EQUIVALENT) 291.93/213.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1340) 291.93/213.28 Complex Obligation (AND) 291.93/213.28 291.93/213.28 ---------------------------------------- 291.93/213.28 291.93/213.28 (1341) 291.93/213.28 Obligation: 291.93/213.28 Q DP problem: 291.93/213.28 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.29 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1342) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1343) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1344) QReductionProof (EQUIVALENT) 291.93/213.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1345) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1346) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1347) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1348) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1349) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1350) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1351) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1352) QReductionProof (EQUIVALENT) 291.93/213.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.29 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1353) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1354) TransformationProof (EQUIVALENT) 291.93/213.29 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1355) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1356) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1357) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1358) QReductionProof (EQUIVALENT) 291.93/213.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.29 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1359) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1360) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1361) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1362) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1363) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1364) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1365) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1366) DependencyGraphProof (EQUIVALENT) 291.93/213.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1367) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1368) InductionCalculusProof (EQUIVALENT) 291.93/213.29 Note that final constraints are written in bold face. 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 For Pair new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: 291.93/213.29 *We consider the chain new_takeWhile112(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile112(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) -> new_takeWhile112(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: 291.93/213.29 291.93/213.29 (1) (new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile112(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) ==> new_takeWhile112(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.93/213.29 291.93/213.29 (2) (Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile112(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: 291.93/213.29 291.93/213.29 (3) (new_not11=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x9)) ==> new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 (4) (new_not9(x12, x11)=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x11)) ==> new_takeWhile112(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.93/213.29 291.93/213.29 (5) (new_not11=MyTrue ==> new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (4) using rules (I), (II) which results in the following new constraint: 291.93/213.29 291.93/213.29 (6) (new_not9(x12, x11)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile112(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.93/213.29 291.93/213.29 (7) (new_not5=MyTrue ==> new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.93/213.29 291.93/213.29 (8) (new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not9(x12, x11)=MyTrue which results in the following new constraints: 291.93/213.29 291.93/213.29 (9) (new_not11=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x13 ==> new_takeWhile112(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 (10) (new_not12(x15, x14)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile112(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.93/213.29 291.93/213.29 (11) (new_takeWhile112(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.93/213.29 291.93/213.29 (12) (new_takeWhile112(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 To summarize, we get the following constraints P__>=_ for the following pairs. 291.93/213.29 291.93/213.29 *new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 291.93/213.29 *(new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 *(new_takeWhile112(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 *(new_takeWhile112(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.29 291.93/213.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. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1369) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1370) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.29 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.29 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1371) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1372) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1373) QReductionProof (EQUIVALENT) 291.93/213.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.29 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1374) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1375) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1376) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1377) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1378) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1379) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1380) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1381) QReductionProof (EQUIVALENT) 291.93/213.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.29 291.93/213.29 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.29 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1382) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1383) TransformationProof (EQUIVALENT) 291.93/213.29 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1384) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1385) DependencyGraphProof (EQUIVALENT) 291.93/213.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1386) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1387) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1388) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.29 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_not10 -> new_not5 291.93/213.29 new_not5 -> MyTrue 291.93/213.29 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.29 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.29 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.29 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.29 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.29 new_not8 -> new_not4 291.93/213.29 new_not4 -> MyFalse 291.93/213.29 new_not11 -> new_not5 291.93/213.29 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.29 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.29 291.93/213.29 The set Q consists of the following terms: 291.93/213.29 291.93/213.29 new_not10 291.93/213.29 new_not8 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.29 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.29 new_not7(x0, Main.Zero) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Zero, Main.Zero) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.29 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.29 new_not7(x0, Main.Succ(x1)) 291.93/213.29 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.29 new_not9(Main.Zero, x0) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.29 new_not4 291.93/213.29 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.29 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.29 new_not11 291.93/213.29 new_not5 291.93/213.29 new_not9(Main.Succ(x0), x1) 291.93/213.29 291.93/213.29 We have to consider all minimal (P,Q,R)-chains. 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1389) TransformationProof (EQUIVALENT) 291.93/213.29 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.29 291.93/213.29 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.29 291.93/213.29 291.93/213.29 ---------------------------------------- 291.93/213.29 291.93/213.29 (1390) 291.93/213.29 Obligation: 291.93/213.29 Q DP problem: 291.93/213.29 The TRS P consists of the following rules: 291.93/213.29 291.93/213.29 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.29 291.93/213.29 The TRS R consists of the following rules: 291.93/213.29 291.93/213.29 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.29 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.29 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.29 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.29 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1391) TransformationProof (EQUIVALENT) 291.93/213.30 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1392) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1393) DependencyGraphProof (EQUIVALENT) 291.93/213.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1394) 291.93/213.30 Complex Obligation (AND) 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1395) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1396) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1397) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1398) TransformationProof (EQUIVALENT) 291.93/213.30 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1399) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1400) TransformationProof (EQUIVALENT) 291.93/213.30 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1401) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1402) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1403) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1404) QReductionProof (EQUIVALENT) 291.93/213.30 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1405) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1406) TransformationProof (EQUIVALENT) 291.93/213.30 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.30 (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1407) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1408) DependencyGraphProof (EQUIVALENT) 291.93/213.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1409) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1410) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1411) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1412) QReductionProof (EQUIVALENT) 291.93/213.30 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1413) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not4 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1414) TransformationProof (EQUIVALENT) 291.93/213.30 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1415) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not4 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1416) QDPSizeChangeProof (EQUIVALENT) 291.93/213.30 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.30 291.93/213.30 Order:EMB rules! 291.93/213.30 291.93/213.30 AFS: 291.93/213.30 Main.Zero = Main.Zero 291.93/213.30 291.93/213.30 MyTrue = MyTrue 291.93/213.30 291.93/213.30 Main.Pos(x1) = x1 291.93/213.30 291.93/213.30 Main.Succ(x1) = Main.Succ(x1) 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 From the DPs we obtained the following set of size-change graphs: 291.93/213.30 *new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.30 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.30 none 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1417) 291.93/213.30 YES 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1418) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1419) TransformationProof (EQUIVALENT) 291.93/213.30 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1420) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1421) TransformationProof (EQUIVALENT) 291.93/213.30 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1422) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1423) TransformationProof (EQUIVALENT) 291.93/213.30 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1424) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1425) DependencyGraphProof (EQUIVALENT) 291.93/213.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1426) 291.93/213.30 Complex Obligation (AND) 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1427) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1428) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1429) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1430) TransformationProof (EQUIVALENT) 291.93/213.30 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1431) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1432) TransformationProof (EQUIVALENT) 291.93/213.30 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1433) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1434) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1435) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1436) QReductionProof (EQUIVALENT) 291.93/213.30 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_not9(Main.Succ(x0), x1) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1437) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1438) TransformationProof (EQUIVALENT) 291.93/213.30 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.30 (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1439) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1440) DependencyGraphProof (EQUIVALENT) 291.93/213.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1441) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1442) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1443) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_not4 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1444) QReductionProof (EQUIVALENT) 291.93/213.30 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.30 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1445) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not4 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1446) TransformationProof (EQUIVALENT) 291.93/213.30 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.30 291.93/213.30 (new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) 291.93/213.30 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1447) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not10 -> new_not5 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not4 291.93/213.30 new_not11 291.93/213.30 new_not5 291.93/213.30 291.93/213.30 We have to consider all minimal (P,Q,R)-chains. 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1448) QDPSizeChangeProof (EQUIVALENT) 291.93/213.30 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.30 291.93/213.30 Order:EMB rules! 291.93/213.30 291.93/213.30 AFS: 291.93/213.30 Main.Zero = Main.Zero 291.93/213.30 291.93/213.30 MyTrue = MyTrue 291.93/213.30 291.93/213.30 Main.Pos(x1) = x1 291.93/213.30 291.93/213.30 Main.Succ(x1) = Main.Succ(x1) 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 From the DPs we obtained the following set of size-change graphs: 291.93/213.30 *new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.30 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.30 291.93/213.30 291.93/213.30 291.93/213.30 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.30 none 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1449) 291.93/213.30 YES 291.93/213.30 291.93/213.30 ---------------------------------------- 291.93/213.30 291.93/213.30 (1450) 291.93/213.30 Obligation: 291.93/213.30 Q DP problem: 291.93/213.30 The TRS P consists of the following rules: 291.93/213.30 291.93/213.30 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.30 291.93/213.30 The TRS R consists of the following rules: 291.93/213.30 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.30 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.30 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.30 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.30 new_not10 -> new_not5 291.93/213.30 new_not5 -> MyTrue 291.93/213.30 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.30 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.30 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.30 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.30 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.30 new_not8 -> new_not4 291.93/213.30 new_not4 -> MyFalse 291.93/213.30 new_not11 -> new_not5 291.93/213.30 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.30 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.30 291.93/213.30 The set Q consists of the following terms: 291.93/213.30 291.93/213.30 new_not10 291.93/213.30 new_not8 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.30 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.30 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.30 new_not7(x0, Main.Zero) 291.93/213.30 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Zero, Main.Zero) 291.93/213.30 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.30 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.30 new_not7(x0, Main.Succ(x1)) 291.93/213.30 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.30 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.30 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.30 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.30 new_not9(Main.Zero, x0) 291.93/213.30 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1451) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1452) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1453) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1454) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1455) TransformationProof (EQUIVALENT) 291.93/213.31 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1456) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1457) DependencyGraphProof (EQUIVALENT) 291.93/213.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1458) 291.93/213.31 Complex Obligation (AND) 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1459) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1460) UsableRulesProof (EQUIVALENT) 291.93/213.31 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. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1461) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1462) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1463) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1464) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1465) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1466) UsableRulesProof (EQUIVALENT) 291.93/213.31 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. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1467) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1468) QReductionProof (EQUIVALENT) 291.93/213.31 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1469) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1470) TransformationProof (EQUIVALENT) 291.93/213.31 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.31 (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1471) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.31 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1472) DependencyGraphProof (EQUIVALENT) 291.93/213.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1473) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1474) UsableRulesProof (EQUIVALENT) 291.93/213.31 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. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1475) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1476) QReductionProof (EQUIVALENT) 291.93/213.31 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1477) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not4 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1478) TransformationProof (EQUIVALENT) 291.93/213.31 By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1479) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not4 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1480) QDPSizeChangeProof (EQUIVALENT) 291.93/213.31 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.31 291.93/213.31 Order:EMB rules! 291.93/213.31 291.93/213.31 AFS: 291.93/213.31 Main.Zero = Main.Zero 291.93/213.31 291.93/213.31 MyTrue = MyTrue 291.93/213.31 291.93/213.31 Main.Pos(x1) = x1 291.93/213.31 291.93/213.31 Main.Succ(x1) = Main.Succ(x1) 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 From the DPs we obtained the following set of size-change graphs: 291.93/213.31 *new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.31 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.31 none 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1481) 291.93/213.31 YES 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1482) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1483) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1484) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1485) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1486) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1487) TransformationProof (EQUIVALENT) 291.93/213.31 By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1488) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1489) DependencyGraphProof (EQUIVALENT) 291.93/213.31 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1490) 291.93/213.31 Complex Obligation (AND) 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1491) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1492) UsableRulesProof (EQUIVALENT) 291.93/213.31 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. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1493) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1494) QReductionProof (EQUIVALENT) 291.93/213.31 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.31 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1495) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1496) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1497) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1498) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1499) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1500) UsableRulesProof (EQUIVALENT) 291.93/213.31 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. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1501) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1502) QReductionProof (EQUIVALENT) 291.93/213.31 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1503) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1504) TransformationProof (EQUIVALENT) 291.93/213.31 By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))),new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2))))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1505) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not10 -> new_not5 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1506) QDPSizeChangeProof (EQUIVALENT) 291.93/213.31 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.31 291.93/213.31 Order:EMB rules! 291.93/213.31 291.93/213.31 AFS: 291.93/213.31 Main.Zero = Main.Zero 291.93/213.31 291.93/213.31 MyTrue = MyTrue 291.93/213.31 291.93/213.31 Main.Pos(x1) = x1 291.93/213.31 291.93/213.31 Main.Succ(x1) = Main.Succ(x1) 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 From the DPs we obtained the following set of size-change graphs: 291.93/213.31 *new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.31 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.31 291.93/213.31 291.93/213.31 291.93/213.31 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.31 none 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1507) 291.93/213.31 YES 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1508) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_not10 -> new_not5 291.93/213.31 new_not5 -> MyTrue 291.93/213.31 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.31 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.31 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.31 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.31 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.31 new_not8 -> new_not4 291.93/213.31 new_not4 -> MyFalse 291.93/213.31 new_not11 -> new_not5 291.93/213.31 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.31 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.31 291.93/213.31 The set Q consists of the following terms: 291.93/213.31 291.93/213.31 new_not10 291.93/213.31 new_not8 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.31 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.31 new_not7(x0, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Zero, Main.Zero) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.31 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.31 new_not7(x0, Main.Succ(x1)) 291.93/213.31 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.31 new_not9(Main.Zero, x0) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.31 new_not4 291.93/213.31 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.31 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.31 new_not11 291.93/213.31 new_not5 291.93/213.31 new_not9(Main.Succ(x0), x1) 291.93/213.31 291.93/213.31 We have to consider all minimal (P,Q,R)-chains. 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1509) TransformationProof (EQUIVALENT) 291.93/213.31 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.31 291.93/213.31 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.31 291.93/213.31 291.93/213.31 ---------------------------------------- 291.93/213.31 291.93/213.31 (1510) 291.93/213.31 Obligation: 291.93/213.31 Q DP problem: 291.93/213.31 The TRS P consists of the following rules: 291.93/213.31 291.93/213.31 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.31 291.93/213.31 The TRS R consists of the following rules: 291.93/213.31 291.93/213.31 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.31 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.31 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.31 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.31 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.31 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1511) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1512) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1513) QDPSizeChangeProof (EQUIVALENT) 291.93/213.32 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.32 291.93/213.32 Order:Polynomial interpretation [POLO]: 291.93/213.32 291.93/213.32 POL(Main.Neg(x_1)) = 0 291.93/213.32 POL(Main.Pos(x_1)) = x_1 291.93/213.32 POL(Main.Succ(x_1)) = 1 + x_1 291.93/213.32 POL(Main.Zero) = 0 291.93/213.32 POL(MyTrue) = 1 291.93/213.32 POL(new_primMinusNat0(x_1, x_2)) = x_1 291.93/213.32 291.93/213.32 291.93/213.32 291.93/213.32 291.93/213.32 From the DPs we obtained the following set of size-change graphs: 291.93/213.32 *new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.32 The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 291.93/213.32 291.93/213.32 291.93/213.32 291.93/213.32 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.32 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1514) 291.93/213.32 YES 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1515) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_map(Cons(wy130, wy131)) -> new_map(wy131) 291.93/213.32 291.93/213.32 R is empty. 291.93/213.32 Q is empty. 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1516) QDPSizeChangeProof (EQUIVALENT) 291.93/213.32 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. 291.93/213.32 291.93/213.32 From the DPs we obtained the following set of size-change graphs: 291.93/213.32 *new_map(Cons(wy130, wy131)) -> new_map(wy131) 291.93/213.32 The graph contains the following edges 1 > 1 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1517) 291.93/213.32 YES 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1518) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile114(wy724, wy725, wy726, Main.Succ(wy7270), Main.Succ(wy7280), wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) -> new_takeWhile114(wy724, wy725, wy726, wy7270, wy7280, wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) 291.93/213.32 291.93/213.32 R is empty. 291.93/213.32 Q is empty. 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1519) QDPSizeChangeProof (EQUIVALENT) 291.93/213.32 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. 291.93/213.32 291.93/213.32 From the DPs we obtained the following set of size-change graphs: 291.93/213.32 *new_takeWhile114(wy724, wy725, wy726, Main.Succ(wy7270), Main.Succ(wy7280), wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) -> new_takeWhile114(wy724, wy725, wy726, wy7270, wy7280, wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) 291.93/213.32 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 11, 12 >= 12, 13 >= 13, 14 >= 14, 15 >= 15, 16 >= 16 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1520) 291.93/213.32 YES 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1521) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_not(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not(wy7740, wy773000) 291.93/213.32 291.93/213.32 R is empty. 291.93/213.32 Q is empty. 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1522) QDPSizeChangeProof (EQUIVALENT) 291.93/213.32 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. 291.93/213.32 291.93/213.32 From the DPs we obtained the following set of size-change graphs: 291.93/213.32 *new_not(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not(wy7740, wy773000) 291.93/213.32 The graph contains the following edges 1 > 1, 2 > 2 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1523) 291.93/213.32 YES 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1524) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(wy753, wy749, wy750, wy751, wy752, MyTrue) -> new_takeWhile19(wy753, new_psMyInt0(wy751, wy752), wy750, wy750, new_psMyInt0(wy751, wy752), new_flip1(wy753, new_psMyInt0(wy751, wy752))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1525) TransformationProof (EQUIVALENT) 291.93/213.32 By instantiating [LPAR04] the rule new_takeWhile19(wy753, wy749, wy750, wy751, wy752, MyTrue) -> new_takeWhile19(wy753, new_psMyInt0(wy751, wy752), wy750, wy750, new_psMyInt0(wy751, wy752), new_flip1(wy753, new_psMyInt0(wy751, wy752))) we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))),new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1526) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1527) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1528) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.32 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.32 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1529) TransformationProof (EQUIVALENT) 291.93/213.32 By narrowing [LPAR04] the rule new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1)))) 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))),new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1530) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.32 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.32 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1531) DependencyGraphProof (EQUIVALENT) 291.93/213.32 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1532) 291.93/213.32 Complex Obligation (AND) 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1533) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.32 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.32 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1534) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1535) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1536) QReductionProof (EQUIVALENT) 291.93/213.32 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.32 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.32 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.32 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.32 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.32 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1537) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1538) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))),new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1539) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1540) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))),new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1541) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1542) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1543) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1544) QReductionProof (EQUIVALENT) 291.93/213.32 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.32 291.93/213.32 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.32 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1545) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1546) TransformationProof (EQUIVALENT) 291.93/213.32 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2))))) 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1))))) 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3)))) 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1547) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1548) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2))))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1549) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1550) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1))))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1551) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1552) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1553) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1554) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3)))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1555) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1556) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2))))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1557) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_not12(Main.Zero, Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_not7(x0, Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_not9(Main.Zero, x0) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.32 new_not4 291.93/213.32 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.32 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.32 new_not11 291.93/213.32 new_not5 291.93/213.32 new_not9(Main.Succ(x0), x1) 291.93/213.32 291.93/213.32 We have to consider all minimal (P,Q,R)-chains. 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1558) TransformationProof (EQUIVALENT) 291.93/213.32 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.32 291.93/213.32 (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1))))) 291.93/213.32 291.93/213.32 291.93/213.32 ---------------------------------------- 291.93/213.32 291.93/213.32 (1559) 291.93/213.32 Obligation: 291.93/213.32 Q DP problem: 291.93/213.32 The TRS P consists of the following rules: 291.93/213.32 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.32 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.32 291.93/213.32 The TRS R consists of the following rules: 291.93/213.32 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.32 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.32 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.32 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.32 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.32 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.32 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.32 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.32 new_not10 -> new_not5 291.93/213.32 new_not5 -> MyTrue 291.93/213.32 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.32 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.32 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.32 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.32 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.32 new_not8 -> new_not4 291.93/213.32 new_not4 -> MyFalse 291.93/213.32 new_not11 -> new_not5 291.93/213.32 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.32 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.32 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.32 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.32 291.93/213.32 The set Q consists of the following terms: 291.93/213.32 291.93/213.32 new_not10 291.93/213.32 new_not8 291.93/213.32 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.32 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.32 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.32 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.32 new_not7(x0, Main.Zero) 291.93/213.32 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1560) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3)))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1561) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1562) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1563) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1564) TransformationProof (EQUIVALENT) 291.93/213.33 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1565) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1566) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) at position [1,1] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1567) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1568) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) at position [1,1] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1569) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1570) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) at position [4,1] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1571) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1572) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) at position [4,1] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1573) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1574) TransformationProof (EQUIVALENT) 291.93/213.33 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1575) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1576) DependencyGraphProof (EQUIVALENT) 291.93/213.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1577) 291.93/213.33 Complex Obligation (AND) 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1578) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1579) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1580) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1581) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1582) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1583) TransformationProof (EQUIVALENT) 291.93/213.33 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1584) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1585) DependencyGraphProof (EQUIVALENT) 291.93/213.33 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1586) 291.93/213.33 Complex Obligation (AND) 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1587) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.33 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1588) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1589) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1590) QReductionProof (EQUIVALENT) 291.93/213.33 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.33 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1591) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1592) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1593) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1594) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1595) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1596) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1597) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1598) QReductionProof (EQUIVALENT) 291.93/213.33 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.33 291.93/213.33 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.33 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1599) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1600) TransformationProof (EQUIVALENT) 291.93/213.33 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1601) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.33 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.33 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1602) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1603) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1604) QReductionProof (EQUIVALENT) 291.93/213.33 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.33 291.93/213.33 new_not7(x0, Main.Zero) 291.93/213.33 new_not7(x0, Main.Succ(x1)) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1605) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.33 new_not9(Main.Zero, x0) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.33 new_not4 291.93/213.33 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.33 new_not11 291.93/213.33 new_not5 291.93/213.33 new_not9(Main.Succ(x0), x1) 291.93/213.33 291.93/213.33 We have to consider all minimal (P,Q,R)-chains. 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1606) TransformationProof (EQUIVALENT) 291.93/213.33 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.33 291.93/213.33 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.93/213.33 291.93/213.33 291.93/213.33 ---------------------------------------- 291.93/213.33 291.93/213.33 (1607) 291.93/213.33 Obligation: 291.93/213.33 Q DP problem: 291.93/213.33 The TRS P consists of the following rules: 291.93/213.33 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.33 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.33 291.93/213.33 The TRS R consists of the following rules: 291.93/213.33 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.33 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.33 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.33 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.33 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.33 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.33 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.33 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.33 new_not8 -> new_not4 291.93/213.33 new_not4 -> MyFalse 291.93/213.33 new_not11 -> new_not5 291.93/213.33 new_not5 -> MyTrue 291.93/213.33 new_not10 -> new_not5 291.93/213.33 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.33 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.33 291.93/213.33 The set Q consists of the following terms: 291.93/213.33 291.93/213.33 new_not10 291.93/213.33 new_not8 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.33 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.33 new_not12(Main.Zero, Main.Zero) 291.93/213.33 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.33 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1608) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1609) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1610) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1611) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1612) DependencyGraphProof (EQUIVALENT) 291.93/213.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1613) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1614) InductionCalculusProof (EQUIVALENT) 291.93/213.34 Note that final constraints are written in bold face. 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 For Pair new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: 291.93/213.34 *We consider the chain new_takeWhile19(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue) -> new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile19(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) -> new_takeWhile19(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: 291.93/213.34 291.93/213.34 (1) (new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile19(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) ==> new_takeWhile19(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.93/213.34 291.93/213.34 (2) (Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile19(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: 291.93/213.34 291.93/213.34 (3) (new_not11=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x9)) ==> new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 (4) (new_not9(x12, x11)=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x11)) ==> new_takeWhile19(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.93/213.34 291.93/213.34 (5) (new_not11=MyTrue ==> new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (4) using rules (I), (II) which results in the following new constraint: 291.93/213.34 291.93/213.34 (6) (new_not9(x12, x11)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile19(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: 291.93/213.34 291.93/213.34 (7) (new_not5=MyTrue ==> new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.93/213.34 291.93/213.34 (8) (new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not9(x12, x11)=MyTrue which results in the following new constraints: 291.93/213.34 291.93/213.34 (9) (new_not11=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x13 ==> new_takeWhile19(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 (10) (new_not12(x15, x14)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile19(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.93/213.34 291.93/213.34 (11) (new_takeWhile19(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.93/213.34 291.93/213.34 (12) (new_takeWhile19(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 To summarize, we get the following constraints P__>=_ for the following pairs. 291.93/213.34 291.93/213.34 *new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.34 291.93/213.34 *(new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 *(new_takeWhile19(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 *(new_takeWhile19(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 291.93/213.34 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. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1615) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1616) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.34 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.34 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.34 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1617) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1618) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1619) QReductionProof (EQUIVALENT) 291.93/213.34 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.34 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1620) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1621) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1622) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1623) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1624) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1625) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1626) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1627) QReductionProof (EQUIVALENT) 291.93/213.34 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.34 291.93/213.34 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.34 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1628) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1629) TransformationProof (EQUIVALENT) 291.93/213.34 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1630) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1631) DependencyGraphProof (EQUIVALENT) 291.93/213.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1632) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1633) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1634) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1635) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1636) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1637) TransformationProof (EQUIVALENT) 291.93/213.34 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1638) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1639) DependencyGraphProof (EQUIVALENT) 291.93/213.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1640) 291.93/213.34 Complex Obligation (AND) 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1641) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1642) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1643) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1644) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1645) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1646) TransformationProof (EQUIVALENT) 291.93/213.34 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1647) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.34 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.34 new_not10 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.34 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1648) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1649) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1650) QReductionProof (EQUIVALENT) 291.93/213.34 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.34 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.34 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.34 new_not9(Main.Zero, x0) 291.93/213.34 new_not9(Main.Succ(x0), x1) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1651) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1652) TransformationProof (EQUIVALENT) 291.93/213.34 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.34 291.93/213.34 (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.34 (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.34 291.93/213.34 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1653) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.34 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1654) DependencyGraphProof (EQUIVALENT) 291.93/213.34 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1655) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.34 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1656) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1657) 291.93/213.34 Obligation: 291.93/213.34 Q DP problem: 291.93/213.34 The TRS P consists of the following rules: 291.93/213.34 291.93/213.34 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.34 291.93/213.34 The TRS R consists of the following rules: 291.93/213.34 291.93/213.34 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.34 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.34 new_not8 -> new_not4 291.93/213.34 new_not4 -> MyFalse 291.93/213.34 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.34 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.34 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.34 new_not11 -> new_not5 291.93/213.34 new_not5 -> MyTrue 291.93/213.34 new_not10 -> new_not5 291.93/213.34 291.93/213.34 The set Q consists of the following terms: 291.93/213.34 291.93/213.34 new_not10 291.93/213.34 new_not8 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_not7(x0, Main.Zero) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Zero, Main.Zero) 291.93/213.34 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.34 new_not7(x0, Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.34 new_not4 291.93/213.34 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.34 new_not11 291.93/213.34 new_not5 291.93/213.34 291.93/213.34 We have to consider all minimal (P,Q,R)-chains. 291.93/213.34 ---------------------------------------- 291.93/213.34 291.93/213.34 (1658) QReductionProof (EQUIVALENT) 291.93/213.34 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.34 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.34 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.34 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1659) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not4 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1660) TransformationProof (EQUIVALENT) 291.93/213.35 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1661) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not4 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1662) QDPSizeChangeProof (EQUIVALENT) 291.93/213.35 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.35 291.93/213.35 Order:EMB rules! 291.93/213.35 291.93/213.35 AFS: 291.93/213.35 Main.Zero = Main.Zero 291.93/213.35 291.93/213.35 MyTrue = MyTrue 291.93/213.35 291.93/213.35 Main.Pos(x1) = x1 291.93/213.35 291.93/213.35 Main.Succ(x1) = Main.Succ(x1) 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 From the DPs we obtained the following set of size-change graphs: 291.93/213.35 *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.35 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.35 none 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1663) 291.93/213.35 YES 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1664) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1665) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1666) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1667) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1668) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1669) TransformationProof (EQUIVALENT) 291.93/213.35 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1670) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1671) DependencyGraphProof (EQUIVALENT) 291.93/213.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1672) 291.93/213.35 Complex Obligation (AND) 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1673) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1674) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1675) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1676) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1677) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1678) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1679) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1680) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1681) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1682) QReductionProof (EQUIVALENT) 291.93/213.35 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1683) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1684) TransformationProof (EQUIVALENT) 291.93/213.35 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.35 (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1685) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.35 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1686) DependencyGraphProof (EQUIVALENT) 291.93/213.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1687) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1688) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1689) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1690) QReductionProof (EQUIVALENT) 291.93/213.35 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1691) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not4 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1692) TransformationProof (EQUIVALENT) 291.93/213.35 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1693) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not4 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1694) QDPSizeChangeProof (EQUIVALENT) 291.93/213.35 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.35 291.93/213.35 Order:EMB rules! 291.93/213.35 291.93/213.35 AFS: 291.93/213.35 Main.Zero = Main.Zero 291.93/213.35 291.93/213.35 MyTrue = MyTrue 291.93/213.35 291.93/213.35 Main.Pos(x1) = x1 291.93/213.35 291.93/213.35 Main.Succ(x1) = Main.Succ(x1) 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 From the DPs we obtained the following set of size-change graphs: 291.93/213.35 *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.35 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.35 291.93/213.35 291.93/213.35 291.93/213.35 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.35 none 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1695) 291.93/213.35 YES 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1696) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1697) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1698) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1699) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1700) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1701) TransformationProof (EQUIVALENT) 291.93/213.35 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1702) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1703) DependencyGraphProof (EQUIVALENT) 291.93/213.35 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1704) 291.93/213.35 Complex Obligation (AND) 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1705) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1706) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1707) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1708) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1709) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1710) TransformationProof (EQUIVALENT) 291.93/213.35 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1711) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.35 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.35 new_not10 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.35 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1712) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1713) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1714) QReductionProof (EQUIVALENT) 291.93/213.35 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.35 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.35 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.35 new_not9(Main.Zero, x0) 291.93/213.35 new_not9(Main.Succ(x0), x1) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1715) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.35 new_not11 -> new_not5 291.93/213.35 new_not5 -> MyTrue 291.93/213.35 new_not10 -> new_not5 291.93/213.35 291.93/213.35 The set Q consists of the following terms: 291.93/213.35 291.93/213.35 new_not10 291.93/213.35 new_not8 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.35 new_not7(x0, Main.Zero) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Zero, Main.Zero) 291.93/213.35 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.35 new_not7(x0, Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.35 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.35 new_not4 291.93/213.35 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.35 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.35 new_not11 291.93/213.35 new_not5 291.93/213.35 291.93/213.35 We have to consider all minimal (P,Q,R)-chains. 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1716) TransformationProof (EQUIVALENT) 291.93/213.35 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.35 291.93/213.35 (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.35 (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.35 291.93/213.35 291.93/213.35 ---------------------------------------- 291.93/213.35 291.93/213.35 (1717) 291.93/213.35 Obligation: 291.93/213.35 Q DP problem: 291.93/213.35 The TRS P consists of the following rules: 291.93/213.35 291.93/213.35 new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.35 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.35 291.93/213.35 The TRS R consists of the following rules: 291.93/213.35 291.93/213.35 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.35 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.35 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.35 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.35 new_not8 -> new_not4 291.93/213.35 new_not4 -> MyFalse 291.93/213.35 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.35 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.35 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1718) DependencyGraphProof (EQUIVALENT) 291.93/213.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1719) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1720) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1721) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1722) QReductionProof (EQUIVALENT) 291.93/213.36 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.36 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1723) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not4 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1724) TransformationProof (EQUIVALENT) 291.93/213.36 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1725) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not4 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1726) QDPSizeChangeProof (EQUIVALENT) 291.93/213.36 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.36 291.93/213.36 Order:EMB rules! 291.93/213.36 291.93/213.36 AFS: 291.93/213.36 Main.Zero = Main.Zero 291.93/213.36 291.93/213.36 MyTrue = MyTrue 291.93/213.36 291.93/213.36 Main.Pos(x1) = x1 291.93/213.36 291.93/213.36 Main.Succ(x1) = Main.Succ(x1) 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 From the DPs we obtained the following set of size-change graphs: 291.93/213.36 *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.36 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.36 none 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1727) 291.93/213.36 YES 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1728) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1729) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1730) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1731) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1732) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1733) TransformationProof (EQUIVALENT) 291.93/213.36 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1734) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1735) DependencyGraphProof (EQUIVALENT) 291.93/213.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1736) 291.93/213.36 Complex Obligation (AND) 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1737) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1738) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1739) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1740) QReductionProof (EQUIVALENT) 291.93/213.36 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.36 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1741) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1742) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1743) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1744) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1745) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1746) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1747) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1748) QReductionProof (EQUIVALENT) 291.93/213.36 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1749) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1750) TransformationProof (EQUIVALENT) 291.93/213.36 By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))),new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1751) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1752) QDPSizeChangeProof (EQUIVALENT) 291.93/213.36 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.36 291.93/213.36 Order:EMB rules! 291.93/213.36 291.93/213.36 AFS: 291.93/213.36 Main.Zero = Main.Zero 291.93/213.36 291.93/213.36 MyTrue = MyTrue 291.93/213.36 291.93/213.36 Main.Pos(x1) = x1 291.93/213.36 291.93/213.36 Main.Succ(x1) = Main.Succ(x1) 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 From the DPs we obtained the following set of size-change graphs: 291.93/213.36 *new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.36 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.36 none 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1753) 291.93/213.36 YES 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1754) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1755) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1756) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1757) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1758) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1759) QDPSizeChangeProof (EQUIVALENT) 291.93/213.36 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.93/213.36 291.93/213.36 Order:Polynomial interpretation [POLO]: 291.93/213.36 291.93/213.36 POL(Main.Neg(x_1)) = 0 291.93/213.36 POL(Main.Pos(x_1)) = x_1 291.93/213.36 POL(Main.Succ(x_1)) = 1 + x_1 291.93/213.36 POL(Main.Zero) = 0 291.93/213.36 POL(MyTrue) = 1 291.93/213.36 POL(new_primMinusNat0(x_1, x_2)) = x_1 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 From the DPs we obtained the following set of size-change graphs: 291.93/213.36 *new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.93/213.36 The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 291.93/213.36 291.93/213.36 291.93/213.36 291.93/213.36 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1760) 291.93/213.36 YES 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1761) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1762) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1763) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1764) TransformationProof (EQUIVALENT) 291.93/213.36 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1765) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1766) TransformationProof (EQUIVALENT) 291.93/213.36 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.36 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero)))) 291.93/213.36 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1767) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1768) DependencyGraphProof (EQUIVALENT) 291.93/213.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1769) 291.93/213.36 Complex Obligation (AND) 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1770) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.36 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1771) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1772) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.36 new_not8 -> new_not4 291.93/213.36 new_not4 -> MyFalse 291.93/213.36 new_not11 -> new_not5 291.93/213.36 new_not5 -> MyTrue 291.93/213.36 new_not10 -> new_not5 291.93/213.36 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.36 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.36 291.93/213.36 The set Q consists of the following terms: 291.93/213.36 291.93/213.36 new_not10 291.93/213.36 new_not8 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_not7(x0, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_not12(Main.Zero, Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_not7(x0, Main.Succ(x1)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_not9(Main.Zero, x0) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.36 new_not4 291.93/213.36 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.36 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.36 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.36 new_not11 291.93/213.36 new_not5 291.93/213.36 new_not9(Main.Succ(x0), x1) 291.93/213.36 291.93/213.36 We have to consider all minimal (P,Q,R)-chains. 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1773) QReductionProof (EQUIVALENT) 291.93/213.36 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.36 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.36 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.36 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.36 291.93/213.36 291.93/213.36 ---------------------------------------- 291.93/213.36 291.93/213.36 (1774) 291.93/213.36 Obligation: 291.93/213.36 Q DP problem: 291.93/213.36 The TRS P consists of the following rules: 291.93/213.36 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.36 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.36 291.93/213.36 The TRS R consists of the following rules: 291.93/213.36 291.93/213.36 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.36 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.36 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.36 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.36 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.36 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.36 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.36 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.36 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.36 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.36 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.36 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.37 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1775) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1776) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.37 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1777) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1778) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.37 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1779) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1780) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1781) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.37 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1782) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1783) TransformationProof (EQUIVALENT) 291.93/213.37 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero)))) 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1784) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1785) DependencyGraphProof (EQUIVALENT) 291.93/213.37 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1786) 291.93/213.37 Complex Obligation (AND) 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1787) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1788) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1789) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1790) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1791) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1792) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1793) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1794) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1795) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1796) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1797) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1798) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1799) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1800) TransformationProof (EQUIVALENT) 291.93/213.37 By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))),new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2))))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1801) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1802) NonTerminationLoopProof (COMPLETE) 291.93/213.37 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.37 Found a loop by narrowing to the left: 291.93/213.37 291.93/213.37 s = new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000)))) evaluates to t =new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))) 291.93/213.37 291.93/213.37 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.37 * Matcher: [ ] 291.93/213.37 * Semiunifier: [z0 / Main.Pos(wy4390), wy2000 / z2] 291.93/213.37 291.93/213.37 -------------------------------------------------------------------------------- 291.93/213.37 Rewriting sequence 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)))) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) 291.93/213.37 with rule new_flip1(Main.Pos(wy4390'), Main.Neg(Main.Succ(wy2000))) -> new_not11 at position [5] and matcher [wy4390' / wy4390, wy2000 / z2] 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) 291.93/213.37 with rule new_not11 -> new_not5 at position [5] and matcher [ ] 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.37 with rule new_not5 -> MyTrue at position [5] and matcher [ ] 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)))) 291.93/213.37 with rule new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))) 291.93/213.37 291.93/213.37 Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence 291.93/213.37 291.93/213.37 291.93/213.37 All these steps are and every following step will be a correct step w.r.t to Q. 291.93/213.37 291.93/213.37 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1803) 291.93/213.37 NO 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1804) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.37 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.37 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.37 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.37 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.37 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.37 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1805) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1806) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1807) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not12(Main.Zero, Main.Zero) 291.93/213.37 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.37 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_not9(Main.Zero, x0) 291.93/213.37 new_not9(Main.Succ(x0), x1) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1808) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1809) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero)))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1810) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1811) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero)))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1812) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1813) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1814) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1815) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.37 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.37 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1816) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1817) TransformationProof (EQUIVALENT) 291.93/213.37 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10)) 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10)) 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11)) 291.93/213.37 (new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not7(x0, Main.Zero)),new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not7(x0, Main.Zero))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1818) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) 291.93/213.37 new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not7(x0, Main.Zero)) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1819) DependencyGraphProof (EQUIVALENT) 291.93/213.37 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1820) 291.93/213.37 Complex Obligation (AND) 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1821) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1822) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1823) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1824) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1825) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1826) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1827) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1828) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1829) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1830) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not11 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1831) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1832) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1833) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1834) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1835) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 R is empty. 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1836) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1837) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 R is empty. 291.93/213.37 Q is empty. 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1838) TransformationProof (EQUIVALENT) 291.93/213.37 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1839) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 R is empty. 291.93/213.37 Q is empty. 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1840) NonTerminationLoopProof (COMPLETE) 291.93/213.37 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.37 Found a loop by semiunifying a rule from P directly. 291.93/213.37 291.93/213.37 s = new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.37 * Matcher: [ ] 291.93/213.37 * Semiunifier: [ ] 291.93/213.37 291.93/213.37 -------------------------------------------------------------------------------- 291.93/213.37 Rewriting sequence 291.93/213.37 291.93/213.37 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue). 291.93/213.37 291.93/213.37 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1841) 291.93/213.37 NO 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1842) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.37 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.37 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.37 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.37 new_not8 -> new_not4 291.93/213.37 new_not4 -> MyFalse 291.93/213.37 new_not11 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 new_not10 -> new_not5 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1843) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1844) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1845) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not8 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.37 new_not7(x0, Main.Zero) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_not7(x0, Main.Succ(x1)) 291.93/213.37 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.37 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.37 new_not4 291.93/213.37 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.37 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.37 new_not11 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1846) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1847) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1848) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not10 -> new_not5 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1849) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1850) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1851) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not10 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1852) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1853) TransformationProof (EQUIVALENT) 291.93/213.37 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1854) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 The TRS R consists of the following rules: 291.93/213.37 291.93/213.37 new_not5 -> MyTrue 291.93/213.37 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1855) UsableRulesProof (EQUIVALENT) 291.93/213.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. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1856) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 R is empty. 291.93/213.37 The set Q consists of the following terms: 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1857) QReductionProof (EQUIVALENT) 291.93/213.37 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.37 291.93/213.37 new_not5 291.93/213.37 291.93/213.37 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1858) 291.93/213.37 Obligation: 291.93/213.37 Q DP problem: 291.93/213.37 The TRS P consists of the following rules: 291.93/213.37 291.93/213.37 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.37 291.93/213.37 R is empty. 291.93/213.37 Q is empty. 291.93/213.37 We have to consider all minimal (P,Q,R)-chains. 291.93/213.37 ---------------------------------------- 291.93/213.37 291.93/213.37 (1859) TransformationProof (EQUIVALENT) 291.93/213.37 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.37 291.93/213.37 (new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1860) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 R is empty. 291.93/213.38 Q is empty. 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1861) NonTerminationLoopProof (COMPLETE) 291.93/213.38 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.38 Found a loop by semiunifying a rule from P directly. 291.93/213.38 291.93/213.38 s = new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.38 * Matcher: [ ] 291.93/213.38 * Semiunifier: [ ] 291.93/213.38 291.93/213.38 -------------------------------------------------------------------------------- 291.93/213.38 Rewriting sequence 291.93/213.38 291.93/213.38 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue). 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1862) 291.93/213.38 NO 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1863) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1864) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1865) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1866) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1867) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1868) TransformationProof (EQUIVALENT) 291.93/213.38 By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5)) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1869) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1870) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1871) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1872) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1873) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1874) TransformationProof (EQUIVALENT) 291.93/213.38 By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1875) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1876) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1877) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 R is empty. 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1878) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1879) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 R is empty. 291.93/213.38 Q is empty. 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1880) TransformationProof (EQUIVALENT) 291.93/213.38 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1881) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 R is empty. 291.93/213.38 Q is empty. 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1882) NonTerminationLoopProof (COMPLETE) 291.93/213.38 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.38 Found a loop by semiunifying a rule from P directly. 291.93/213.38 291.93/213.38 s = new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) 291.93/213.38 291.93/213.38 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.38 * Matcher: [ ] 291.93/213.38 * Semiunifier: [ ] 291.93/213.38 291.93/213.38 -------------------------------------------------------------------------------- 291.93/213.38 Rewriting sequence 291.93/213.38 291.93/213.38 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) to new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue). 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1883) 291.93/213.38 NO 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1884) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.38 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.38 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.38 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1885) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1886) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1887) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1888) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1889) TransformationProof (EQUIVALENT) 291.93/213.38 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1890) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1891) TransformationProof (EQUIVALENT) 291.93/213.38 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(x1, Main.Zero), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1892) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1893) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1894) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1895) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.38 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1896) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1897) TransformationProof (EQUIVALENT) 291.93/213.38 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.38 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1898) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1899) DependencyGraphProof (EQUIVALENT) 291.93/213.38 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1900) 291.93/213.38 Complex Obligation (AND) 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1901) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1902) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1903) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1904) TransformationProof (EQUIVALENT) 291.93/213.38 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1905) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1906) TransformationProof (EQUIVALENT) 291.93/213.38 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1907) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1908) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1909) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1910) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1911) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1912) TransformationProof (EQUIVALENT) 291.93/213.38 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not8)) 291.93/213.38 (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1913) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not8) 291.93/213.38 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1914) DependencyGraphProof (EQUIVALENT) 291.93/213.38 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1915) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1916) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1917) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1918) QReductionProof (EQUIVALENT) 291.93/213.38 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.38 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1919) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not4 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1920) TransformationProof (EQUIVALENT) 291.93/213.38 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: 291.93/213.38 291.93/213.38 (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0))) 291.93/213.38 291.93/213.38 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1921) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not4 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1922) MNOCProof (EQUIVALENT) 291.93/213.38 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1923) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 Q is empty. 291.93/213.38 We have to consider all (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1924) InductionCalculusProof (EQUIVALENT) 291.93/213.38 Note that final constraints are written in bold face. 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 For Pair new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) the following chains were created: 291.93/213.38 *We consider the chain new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)), new_takeWhile19(Main.Pos(x2), Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile19(Main.Pos(x2), Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), new_not7(x3, x2)) which results in the following constraint: 291.93/213.38 291.93/213.38 (1) (new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))=new_takeWhile19(Main.Pos(x2), Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 291.93/213.38 291.93/213.38 (2) (new_not7(x1, x0)=MyTrue ==> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not7(x1, x0)=MyTrue which results in the following new constraints: 291.93/213.38 291.93/213.38 (3) (new_not12(x5, x4)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x4)), Main.Pos(Main.Succ(x5)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x5)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x4)), Main.Pos(Main.Succ(x5)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x5)), new_not7(x5, Main.Succ(x4)))) 291.93/213.38 291.93/213.38 (4) (new_not8=MyTrue ==> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not12(x5, x4)=MyTrue which results in the following new constraints: 291.93/213.38 291.93/213.38 (5) (new_not10=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Zero)))) 291.93/213.38 291.93/213.38 (6) (new_not11=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Succ(x7))))) 291.93/213.38 291.93/213.38 (7) (new_not12(x9, x8)=MyTrue & (new_not12(x9, x8)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8)))) ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), new_not7(Main.Succ(x9), Main.Succ(Main.Succ(x8))))) 291.93/213.38 291.93/213.38 (8) (new_not8=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), new_not7(Main.Succ(x10), Main.Succ(Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.93/213.38 291.93/213.38 (9) (new_not4=MyTrue ==> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (5) using rule (IV) which results in the following new constraint: 291.93/213.38 291.93/213.38 (10) (new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (6) using rule (IV) which results in the following new constraint: 291.93/213.38 291.93/213.38 (11) (new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Succ(x7))))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (7) using rule (VI) where we applied the induction hypothesis (new_not12(x9, x8)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8)))) with sigma = [ ] which results in the following new constraint: 291.93/213.38 291.93/213.38 (12) (new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8))) ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), new_not7(Main.Succ(x9), Main.Succ(Main.Succ(x8))))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (8) using rule (IV) which results in the following new constraint: 291.93/213.38 291.93/213.38 (13) (new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), new_not7(Main.Succ(x10), Main.Succ(Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.93/213.38 291.93/213.38 (14) (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 To summarize, we get the following constraints P__>=_ for the following pairs. 291.93/213.38 291.93/213.38 *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) 291.93/213.38 291.93/213.38 *(new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8))) ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), new_not7(Main.Succ(x9), Main.Succ(Main.Succ(x8))))) 291.93/213.38 291.93/213.38 291.93/213.38 *(new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 *(new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Succ(x7))))) 291.93/213.38 291.93/213.38 291.93/213.38 *(new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), new_not7(Main.Succ(x10), Main.Succ(Main.Zero)))) 291.93/213.38 291.93/213.38 291.93/213.38 *(new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.38 291.93/213.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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1925) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not10 -> new_not5 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not4 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1926) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.38 new_not8 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.38 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.38 new_not7(x0, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Zero, Main.Zero) 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.38 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.38 new_not7(x0, Main.Succ(x1)) 291.93/213.38 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.38 new_not9(Main.Zero, x0) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.38 new_not4 291.93/213.38 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.38 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.38 new_not11 291.93/213.38 new_not5 291.93/213.38 new_not9(Main.Succ(x0), x1) 291.93/213.38 291.93/213.38 We have to consider all minimal (P,Q,R)-chains. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1927) UsableRulesProof (EQUIVALENT) 291.93/213.38 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. 291.93/213.38 ---------------------------------------- 291.93/213.38 291.93/213.38 (1928) 291.93/213.38 Obligation: 291.93/213.38 Q DP problem: 291.93/213.38 The TRS P consists of the following rules: 291.93/213.38 291.93/213.38 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.38 291.93/213.38 The TRS R consists of the following rules: 291.93/213.38 291.93/213.38 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.38 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.38 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.38 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.38 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.38 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.38 new_not10 -> new_not5 291.93/213.38 new_not5 -> MyTrue 291.93/213.38 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.38 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.38 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.38 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.38 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.38 new_not8 -> new_not4 291.93/213.38 new_not4 -> MyFalse 291.93/213.38 new_not11 -> new_not5 291.93/213.38 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.38 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.38 291.93/213.38 The set Q consists of the following terms: 291.93/213.38 291.93/213.38 new_not10 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1929) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1930) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1931) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1932) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1933) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1934) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1935) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1936) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1937) TransformationProof (EQUIVALENT) 291.93/213.39 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.39 (new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8)) 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1938) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8) 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1939) DependencyGraphProof (EQUIVALENT) 291.93/213.39 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1940) 291.93/213.39 Complex Obligation (AND) 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1941) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1942) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1943) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1944) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1945) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1946) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1947) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1948) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1949) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1950) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1951) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1952) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1953) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1954) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1955) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1956) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1957) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 Q is empty. 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1958) TransformationProof (EQUIVALENT) 291.93/213.39 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1959) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 Q is empty. 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1960) NonTerminationLoopProof (COMPLETE) 291.93/213.39 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.39 Found a loop by semiunifying a rule from P directly. 291.93/213.39 291.93/213.39 s = new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.39 * Matcher: [ ] 291.93/213.39 * Semiunifier: [ ] 291.93/213.39 291.93/213.39 -------------------------------------------------------------------------------- 291.93/213.39 Rewriting sequence 291.93/213.39 291.93/213.39 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.39 291.93/213.39 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1961) 291.93/213.39 NO 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1962) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1963) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1964) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1965) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1966) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1967) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1968) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1969) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1970) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1971) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1972) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1973) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1974) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1975) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1976) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1977) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not11 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1978) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1979) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1980) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1981) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1982) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1983) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1984) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 Q is empty. 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1985) TransformationProof (EQUIVALENT) 291.93/213.39 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1986) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 Q is empty. 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1987) NonTerminationLoopProof (COMPLETE) 291.93/213.39 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.39 Found a loop by semiunifying a rule from P directly. 291.93/213.39 291.93/213.39 s = new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.39 * Matcher: [ ] 291.93/213.39 * Semiunifier: [ ] 291.93/213.39 291.93/213.39 -------------------------------------------------------------------------------- 291.93/213.39 Rewriting sequence 291.93/213.39 291.93/213.39 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.39 291.93/213.39 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1988) 291.93/213.39 NO 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1989) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1990) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1991) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1992) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1993) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1994) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1995) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1996) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1997) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1998) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (1999) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2000) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2001) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2002) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2003) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2004) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_not5 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2005) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 Q is empty. 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2006) TransformationProof (EQUIVALENT) 291.93/213.39 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2007) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 R is empty. 291.93/213.39 Q is empty. 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2008) NonTerminationLoopProof (COMPLETE) 291.93/213.39 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.39 Found a loop by semiunifying a rule from P directly. 291.93/213.39 291.93/213.39 s = new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.39 291.93/213.39 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.39 * Matcher: [ ] 291.93/213.39 * Semiunifier: [ ] 291.93/213.39 291.93/213.39 -------------------------------------------------------------------------------- 291.93/213.39 Rewriting sequence 291.93/213.39 291.93/213.39 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.39 291.93/213.39 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2009) 291.93/213.39 NO 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2010) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.39 new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.39 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) 291.93/213.39 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.39 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.39 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2011) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2012) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.39 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.39 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2013) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_primPlusInt2(x0, Main.Neg(x1)) 291.93/213.39 new_primPlusInt2(x0, Main.Pos(x1)) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2014) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.39 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.39 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2015) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1)))) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2016) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.39 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.39 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2017) TransformationProof (EQUIVALENT) 291.93/213.39 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.39 291.93/213.39 (new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1)))) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2018) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.39 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.39 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2019) UsableRulesProof (EQUIVALENT) 291.93/213.39 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. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2020) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.39 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.39 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.39 new_not8 -> new_not4 291.93/213.39 new_not4 -> MyFalse 291.93/213.39 new_not11 -> new_not5 291.93/213.39 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.39 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.39 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.39 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.39 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.39 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.39 291.93/213.39 The set Q consists of the following terms: 291.93/213.39 291.93/213.39 new_not10 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.39 new_not8 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.39 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_not7(x0, Main.Zero) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_not12(Main.Zero, Main.Zero) 291.93/213.39 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.39 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_not7(x0, Main.Succ(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.39 new_not9(Main.Zero, x0) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.39 new_not4 291.93/213.39 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.39 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.39 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.39 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.39 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.39 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.39 new_not11 291.93/213.39 new_not5 291.93/213.39 new_not9(Main.Succ(x0), x1) 291.93/213.39 291.93/213.39 We have to consider all minimal (P,Q,R)-chains. 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2021) QReductionProof (EQUIVALENT) 291.93/213.39 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.39 291.93/213.39 new_psMyInt0(Main.Neg(x0), x1) 291.93/213.39 new_psMyInt0(Main.Pos(x0), x1) 291.93/213.39 291.93/213.39 291.93/213.39 ---------------------------------------- 291.93/213.39 291.93/213.39 (2022) 291.93/213.39 Obligation: 291.93/213.39 Q DP problem: 291.93/213.39 The TRS P consists of the following rules: 291.93/213.39 291.93/213.39 new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) 291.93/213.39 291.93/213.39 The TRS R consists of the following rules: 291.93/213.39 291.93/213.39 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.39 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.39 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.39 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.39 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.39 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.39 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.39 new_not10 -> new_not5 291.93/213.39 new_not5 -> MyTrue 291.93/213.39 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.39 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.39 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2023) TransformationProof (EQUIVALENT) 291.93/213.40 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1)))) 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2024) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2025) DependencyGraphProof (EQUIVALENT) 291.93/213.40 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2026) 291.93/213.40 Complex Obligation (AND) 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2027) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2028) UsableRulesProof (EQUIVALENT) 291.93/213.40 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. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2029) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2030) TransformationProof (EQUIVALENT) 291.93/213.40 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2031) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2032) TransformationProof (EQUIVALENT) 291.93/213.40 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2033) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2034) UsableRulesProof (EQUIVALENT) 291.93/213.40 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. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2035) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2036) QReductionProof (EQUIVALENT) 291.93/213.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.40 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.40 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.40 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2037) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2038) TransformationProof (EQUIVALENT) 291.93/213.40 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2039) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2040) DependencyGraphProof (EQUIVALENT) 291.93/213.40 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2041) 291.93/213.40 Complex Obligation (AND) 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2042) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.40 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2043) UsableRulesProof (EQUIVALENT) 291.93/213.40 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. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2044) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2045) QReductionProof (EQUIVALENT) 291.93/213.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.40 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2046) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2047) TransformationProof (EQUIVALENT) 291.93/213.40 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2048) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2049) TransformationProof (EQUIVALENT) 291.93/213.40 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2050) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.40 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2051) UsableRulesProof (EQUIVALENT) 291.93/213.40 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. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2052) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2053) QReductionProof (EQUIVALENT) 291.93/213.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.40 291.93/213.40 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.40 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2054) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2055) TransformationProof (EQUIVALENT) 291.93/213.40 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2056) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2057) DependencyGraphProof (EQUIVALENT) 291.93/213.40 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2058) 291.93/213.40 Complex Obligation (AND) 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2059) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.40 new_not10 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2060) UsableRulesProof (EQUIVALENT) 291.93/213.40 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. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2061) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2062) QReductionProof (EQUIVALENT) 291.93/213.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.40 291.93/213.40 new_not9(Main.Zero, x0) 291.93/213.40 new_not9(Main.Succ(x0), x1) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2063) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2064) TransformationProof (EQUIVALENT) 291.93/213.40 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2065) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2066) TransformationProof (EQUIVALENT) 291.93/213.40 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2067) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2068) UsableRulesProof (EQUIVALENT) 291.93/213.40 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. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2069) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2070) QReductionProof (EQUIVALENT) 291.93/213.40 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.40 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.40 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2071) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2072) TransformationProof (EQUIVALENT) 291.93/213.40 By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.93/213.40 291.93/213.40 (new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))),new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2))))) 291.93/213.40 291.93/213.40 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2073) 291.93/213.40 Obligation: 291.93/213.40 Q DP problem: 291.93/213.40 The TRS P consists of the following rules: 291.93/213.40 291.93/213.40 new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.40 291.93/213.40 The TRS R consists of the following rules: 291.93/213.40 291.93/213.40 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.40 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.40 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.40 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.40 new_not8 -> new_not4 291.93/213.40 new_not4 -> MyFalse 291.93/213.40 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.40 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.40 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.40 new_not11 -> new_not5 291.93/213.40 new_not5 -> MyTrue 291.93/213.40 new_not10 -> new_not5 291.93/213.40 291.93/213.40 The set Q consists of the following terms: 291.93/213.40 291.93/213.40 new_not10 291.93/213.40 new_not8 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.40 new_not7(x0, Main.Zero) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Zero, Main.Zero) 291.93/213.40 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.40 new_not7(x0, Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.40 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.40 new_not4 291.93/213.40 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.40 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.40 new_not11 291.93/213.40 new_not5 291.93/213.40 291.93/213.40 We have to consider all minimal (P,Q,R)-chains. 291.93/213.40 ---------------------------------------- 291.93/213.40 291.93/213.40 (2074) InductionCalculusProof (EQUIVALENT) 291.93/213.40 Note that final constraints are written in bold face. 291.93/213.40 291.93/213.40 291.93/213.40 291.93/213.40 For Pair new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) the following chains were created: 291.93/213.40 *We consider the chain new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1)))), new_takeWhile19(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile19(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), new_flip1(x2, Main.Pos(Main.Succ(x3)))) which results in the following constraint: 291.93/213.40 291.93/213.40 (1) (new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))=new_takeWhile19(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) 291.93/213.40 291.93/213.40 291.93/213.40 291.93/213.40 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.93/213.40 291.93/213.40 (2) (Main.Pos(Main.Succ(x1))=x4 & new_flip1(x0, x4)=MyTrue ==> new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) 291.93/213.40 291.93/213.40 291.93/213.40 291.93/213.40 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x4)=MyTrue which results in the following new constraints: 291.93/213.40 291.93/213.40 (3) (new_not8=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x5)) ==> new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.40 291.93/213.40 (4) (new_not7(x7, x8)=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x7)) ==> new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x1))))) 291.93/213.40 291.93/213.40 291.93/213.40 291.93/213.40 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.93/213.40 291.93/213.40 (5) (new_not8=MyTrue ==> new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.40 291.93/213.40 291.93/213.40 291.93/213.40 We simplified constraint (4) using rules (I), (II), (III) which results in the following new constraint: 291.93/213.40 291.93/213.40 (6) (new_not7(x7, x8)=MyTrue ==> new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), MyTrue)_>=_new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x7))))) 291.93/213.40 291.93/213.40 291.93/213.40 291.93/213.40 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.93/213.41 291.93/213.41 (7) (new_not4=MyTrue ==> new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.93/213.41 291.93/213.41 (8) (new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x7, x8)=MyTrue which results in the following new constraints: 291.93/213.41 291.93/213.41 (9) (new_not12(x10, x9)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.41 291.93/213.41 (10) (new_not8=MyTrue ==> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.93/213.41 291.93/213.41 (11) (new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.93/213.41 291.93/213.41 (12) (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 To summarize, we get the following constraints P__>=_ for the following pairs. 291.93/213.41 291.93/213.41 *new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.41 291.93/213.41 *(new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) 291.93/213.41 291.93/213.41 291.93/213.41 *(new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) 291.93/213.41 291.93/213.41 291.93/213.41 *(new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2075) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not10 -> new_not5 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2076) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2077) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2078) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2079) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2080) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2081) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2082) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2083) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2084) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2085) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2086) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2087) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2088) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2089) TransformationProof (EQUIVALENT) 291.93/213.41 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.41 (new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8)) 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2090) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8) 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2091) DependencyGraphProof (EQUIVALENT) 291.93/213.41 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2092) 291.93/213.41 Complex Obligation (AND) 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2093) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2094) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2095) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2096) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2097) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2098) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2099) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2100) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2101) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2102) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2103) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2104) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2105) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2106) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2107) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2108) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2109) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 Q is empty. 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2110) TransformationProof (EQUIVALENT) 291.93/213.41 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2111) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 Q is empty. 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2112) NonTerminationLoopProof (COMPLETE) 291.93/213.41 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.41 Found a loop by semiunifying a rule from P directly. 291.93/213.41 291.93/213.41 s = new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.41 * Matcher: [ ] 291.93/213.41 * Semiunifier: [ ] 291.93/213.41 291.93/213.41 -------------------------------------------------------------------------------- 291.93/213.41 Rewriting sequence 291.93/213.41 291.93/213.41 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2113) 291.93/213.41 NO 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2114) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2115) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2116) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2117) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2118) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2119) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2120) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2121) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2122) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2123) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2124) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2125) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2126) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2127) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2128) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2129) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not11 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2130) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2131) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2132) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2133) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2134) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2135) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2136) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 Q is empty. 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2137) TransformationProof (EQUIVALENT) 291.93/213.41 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2138) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 Q is empty. 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2139) NonTerminationLoopProof (COMPLETE) 291.93/213.41 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.41 Found a loop by semiunifying a rule from P directly. 291.93/213.41 291.93/213.41 s = new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.41 * Matcher: [ ] 291.93/213.41 * Semiunifier: [ ] 291.93/213.41 291.93/213.41 -------------------------------------------------------------------------------- 291.93/213.41 Rewriting sequence 291.93/213.41 291.93/213.41 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2140) 291.93/213.41 NO 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2141) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2142) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2143) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2144) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2145) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2146) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2147) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2148) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2149) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2150) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2151) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2152) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2153) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2154) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2155) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2156) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_not5 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2157) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 Q is empty. 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2158) TransformationProof (EQUIVALENT) 291.93/213.41 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2159) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 R is empty. 291.93/213.41 Q is empty. 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2160) NonTerminationLoopProof (COMPLETE) 291.93/213.41 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.41 Found a loop by semiunifying a rule from P directly. 291.93/213.41 291.93/213.41 s = new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) 291.93/213.41 291.93/213.41 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.41 * Matcher: [ ] 291.93/213.41 * Semiunifier: [ ] 291.93/213.41 291.93/213.41 -------------------------------------------------------------------------------- 291.93/213.41 Rewriting sequence 291.93/213.41 291.93/213.41 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2161) 291.93/213.41 NO 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2162) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.41 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.41 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.41 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2163) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2164) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2165) QReductionProof (EQUIVALENT) 291.93/213.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.41 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2166) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2167) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2168) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2169) TransformationProof (EQUIVALENT) 291.93/213.41 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.41 291.93/213.41 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) 291.93/213.41 291.93/213.41 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2170) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.41 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.41 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.41 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.41 new_not10 -> new_not5 291.93/213.41 new_not5 -> MyTrue 291.93/213.41 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.41 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.41 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.41 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.41 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.41 new_not8 -> new_not4 291.93/213.41 new_not4 -> MyFalse 291.93/213.41 new_not11 -> new_not5 291.93/213.41 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.41 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.41 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.41 291.93/213.41 The set Q consists of the following terms: 291.93/213.41 291.93/213.41 new_not10 291.93/213.41 new_not8 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.41 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.41 new_not7(x0, Main.Zero) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Zero, Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.41 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.41 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.41 new_not7(x0, Main.Succ(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.41 new_not9(Main.Zero, x0) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.41 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.41 new_not4 291.93/213.41 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.41 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.41 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.41 new_not11 291.93/213.41 new_not5 291.93/213.41 new_not9(Main.Succ(x0), x1) 291.93/213.41 291.93/213.41 We have to consider all minimal (P,Q,R)-chains. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2171) UsableRulesProof (EQUIVALENT) 291.93/213.41 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. 291.93/213.41 ---------------------------------------- 291.93/213.41 291.93/213.41 (2172) 291.93/213.41 Obligation: 291.93/213.41 Q DP problem: 291.93/213.41 The TRS P consists of the following rules: 291.93/213.41 291.93/213.41 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.41 291.93/213.41 The TRS R consists of the following rules: 291.93/213.41 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.41 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2173) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2174) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2175) TransformationProof (EQUIVALENT) 291.93/213.42 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2176) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2177) DependencyGraphProof (EQUIVALENT) 291.93/213.42 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2178) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2179) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2180) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2181) TransformationProof (EQUIVALENT) 291.93/213.42 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2182) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2183) TransformationProof (EQUIVALENT) 291.93/213.42 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2184) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2185) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2186) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2187) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2188) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2189) TransformationProof (EQUIVALENT) 291.93/213.42 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11)) 291.93/213.42 (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2190) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.42 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2191) DependencyGraphProof (EQUIVALENT) 291.93/213.42 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2192) 291.93/213.42 Complex Obligation (AND) 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2193) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2194) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2195) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2196) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2197) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_not4 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2198) TransformationProof (EQUIVALENT) 291.93/213.42 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2199) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_not4 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2200) MNOCProof (EQUIVALENT) 291.93/213.42 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2201) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 Q is empty. 291.93/213.42 We have to consider all (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2202) NonTerminationLoopProof (COMPLETE) 291.93/213.42 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.42 Found a loop by narrowing to the left: 291.93/213.42 291.93/213.42 s = new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, wy2000)) evaluates to t =new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.42 291.93/213.42 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.42 * Matcher: [ ] 291.93/213.42 * Semiunifier: [z0 / Main.Zero, wy2000 / z2] 291.93/213.42 291.93/213.42 -------------------------------------------------------------------------------- 291.93/213.42 Rewriting sequence 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) 291.93/213.42 with rule new_not9(Main.Zero, wy2000) -> new_not11 at position [5] and matcher [wy2000 / z2] 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) 291.93/213.42 with rule new_not11 -> new_not5 at position [5] and matcher [ ] 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.42 with rule new_not5 -> MyTrue at position [5] and matcher [ ] 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) 291.93/213.42 with rule new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) 291.93/213.42 291.93/213.42 Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence 291.93/213.42 291.93/213.42 291.93/213.42 All these steps are and every following step will be a correct step w.r.t to Q. 291.93/213.42 291.93/213.42 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2203) 291.93/213.42 NO 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2204) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not10 -> new_not5 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2205) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2206) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2207) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2208) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2209) TransformationProof (EQUIVALENT) 291.93/213.42 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5)) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2210) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2211) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2212) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2213) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_not11 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2214) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2215) TransformationProof (EQUIVALENT) 291.93/213.42 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue)) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2216) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2217) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2218) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.42 291.93/213.42 R is empty. 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2219) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_not5 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2220) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) 291.93/213.42 291.93/213.42 R is empty. 291.93/213.42 Q is empty. 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2221) TransformationProof (EQUIVALENT) 291.93/213.42 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue)) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2222) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.42 291.93/213.42 R is empty. 291.93/213.42 Q is empty. 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2223) NonTerminationLoopProof (COMPLETE) 291.93/213.42 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 291.93/213.42 Found a loop by semiunifying a rule from P directly. 291.93/213.42 291.93/213.42 s = new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) 291.93/213.42 291.93/213.42 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 291.93/213.42 * Matcher: [ ] 291.93/213.42 * Semiunifier: [ ] 291.93/213.42 291.93/213.42 -------------------------------------------------------------------------------- 291.93/213.42 Rewriting sequence 291.93/213.42 291.93/213.42 The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) to new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue). 291.93/213.42 291.93/213.42 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2224) 291.93/213.42 NO 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2225) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2226) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2227) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2228) TransformationProof (EQUIVALENT) 291.93/213.42 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1)))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2229) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2230) TransformationProof (EQUIVALENT) 291.93/213.42 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1)))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2231) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2232) UsableRulesProof (EQUIVALENT) 291.93/213.42 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. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2233) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2234) QReductionProof (EQUIVALENT) 291.93/213.42 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.42 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Zero, x0) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) 291.93/213.42 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) 291.93/213.42 new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2235) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2236) TransformationProof (EQUIVALENT) 291.93/213.42 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) at position [5] we obtained the following new rules [LPAR04]: 291.93/213.42 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.42 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) 291.93/213.42 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2237) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.42 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.42 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.42 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.42 new_not10 -> new_not5 291.93/213.42 new_not5 -> MyTrue 291.93/213.42 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.42 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.42 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.42 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.42 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.42 new_not8 -> new_not4 291.93/213.42 new_not4 -> MyFalse 291.93/213.42 new_not11 -> new_not5 291.93/213.42 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.42 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.42 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.42 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.42 291.93/213.42 The set Q consists of the following terms: 291.93/213.42 291.93/213.42 new_not10 291.93/213.42 new_not8 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.42 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_not7(x0, Main.Zero) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_not12(Main.Zero, Main.Zero) 291.93/213.42 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.42 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_not7(x0, Main.Succ(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.42 new_not9(Main.Zero, x0) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.42 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.42 new_not4 291.93/213.42 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.42 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.42 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.42 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.42 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.42 new_not11 291.93/213.42 new_not5 291.93/213.42 new_not9(Main.Succ(x0), x1) 291.93/213.42 291.93/213.42 We have to consider all minimal (P,Q,R)-chains. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2238) DependencyGraphProof (EQUIVALENT) 291.93/213.42 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2239) 291.93/213.42 Complex Obligation (AND) 291.93/213.42 291.93/213.42 ---------------------------------------- 291.93/213.42 291.93/213.42 (2240) 291.93/213.42 Obligation: 291.93/213.42 Q DP problem: 291.93/213.42 The TRS P consists of the following rules: 291.93/213.42 291.93/213.42 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.42 291.93/213.42 The TRS R consists of the following rules: 291.93/213.42 291.93/213.42 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.42 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.93/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.93/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.93/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_not10 -> new_not5 291.93/213.43 new_not5 -> MyTrue 291.93/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.93/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.43 new_not8 -> new_not4 291.93/213.43 new_not4 -> MyFalse 291.93/213.43 new_not11 -> new_not5 291.93/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.93/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.93/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.43 291.93/213.43 The set Q consists of the following terms: 291.93/213.43 291.93/213.43 new_not10 291.93/213.43 new_not8 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_not7(x0, Main.Zero) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_not12(Main.Zero, Main.Zero) 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_not7(x0, Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not9(Main.Zero, x0) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_not4 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_not11 291.93/213.43 new_not5 291.93/213.43 new_not9(Main.Succ(x0), x1) 291.93/213.43 291.93/213.43 We have to consider all minimal (P,Q,R)-chains. 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2241) UsableRulesProof (EQUIVALENT) 291.93/213.43 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. 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2242) 291.93/213.43 Obligation: 291.93/213.43 Q DP problem: 291.93/213.43 The TRS P consists of the following rules: 291.93/213.43 291.93/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.43 291.93/213.43 The TRS R consists of the following rules: 291.93/213.43 291.93/213.43 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_not10 -> new_not5 291.93/213.43 new_not5 -> MyTrue 291.93/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.43 new_not11 -> new_not5 291.93/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.43 new_not8 -> new_not4 291.93/213.43 new_not4 -> MyFalse 291.93/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.43 291.93/213.43 The set Q consists of the following terms: 291.93/213.43 291.93/213.43 new_not10 291.93/213.43 new_not8 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_not7(x0, Main.Zero) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_not12(Main.Zero, Main.Zero) 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_not7(x0, Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not9(Main.Zero, x0) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_not4 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_not11 291.93/213.43 new_not5 291.93/213.43 new_not9(Main.Succ(x0), x1) 291.93/213.43 291.93/213.43 We have to consider all minimal (P,Q,R)-chains. 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2243) QReductionProof (EQUIVALENT) 291.93/213.43 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.93/213.43 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.93/213.43 291.93/213.43 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2244) 291.93/213.43 Obligation: 291.93/213.43 Q DP problem: 291.93/213.43 The TRS P consists of the following rules: 291.93/213.43 291.93/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.43 291.93/213.43 The TRS R consists of the following rules: 291.93/213.43 291.93/213.43 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_not10 -> new_not5 291.93/213.43 new_not5 -> MyTrue 291.93/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.43 new_not11 -> new_not5 291.93/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.43 new_not8 -> new_not4 291.93/213.43 new_not4 -> MyFalse 291.93/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.43 291.93/213.43 The set Q consists of the following terms: 291.93/213.43 291.93/213.43 new_not10 291.93/213.43 new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_not7(x0, Main.Zero) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_not12(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_not7(x0, Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not9(Main.Zero, x0) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_not4 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_not11 291.93/213.43 new_not5 291.93/213.43 new_not9(Main.Succ(x0), x1) 291.93/213.43 291.93/213.43 We have to consider all minimal (P,Q,R)-chains. 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2245) TransformationProof (EQUIVALENT) 291.93/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.93/213.43 291.93/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.43 291.93/213.43 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2246) 291.93/213.43 Obligation: 291.93/213.43 Q DP problem: 291.93/213.43 The TRS P consists of the following rules: 291.93/213.43 291.93/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.43 291.93/213.43 The TRS R consists of the following rules: 291.93/213.43 291.93/213.43 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_not10 -> new_not5 291.93/213.43 new_not5 -> MyTrue 291.93/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.43 new_not11 -> new_not5 291.93/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.43 new_not8 -> new_not4 291.93/213.43 new_not4 -> MyFalse 291.93/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.43 291.93/213.43 The set Q consists of the following terms: 291.93/213.43 291.93/213.43 new_not10 291.93/213.43 new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_not7(x0, Main.Zero) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_not12(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_not7(x0, Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not9(Main.Zero, x0) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_not4 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_not11 291.93/213.43 new_not5 291.93/213.43 new_not9(Main.Succ(x0), x1) 291.93/213.43 291.93/213.43 We have to consider all minimal (P,Q,R)-chains. 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2247) TransformationProof (EQUIVALENT) 291.93/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: 291.93/213.43 291.93/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) 291.93/213.43 291.93/213.43 291.93/213.43 ---------------------------------------- 291.93/213.43 291.93/213.43 (2248) 291.93/213.43 Obligation: 291.93/213.43 Q DP problem: 291.93/213.43 The TRS P consists of the following rules: 291.93/213.43 291.93/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.93/213.43 291.93/213.43 The TRS R consists of the following rules: 291.93/213.43 291.93/213.43 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.93/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.93/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.93/213.43 new_not10 -> new_not5 291.93/213.43 new_not5 -> MyTrue 291.93/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.93/213.43 new_not11 -> new_not5 291.93/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.93/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.93/213.43 new_not8 -> new_not4 291.93/213.43 new_not4 -> MyFalse 291.93/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.93/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.93/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.93/213.43 291.93/213.43 The set Q consists of the following terms: 291.93/213.43 291.93/213.43 new_not10 291.93/213.43 new_not8 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.93/213.43 new_not7(x0, Main.Zero) 291.93/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.93/213.43 new_not12(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.93/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.93/213.43 new_not7(x0, Main.Succ(x1)) 291.93/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.93/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.93/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.93/213.43 new_not9(Main.Zero, x0) 291.93/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.93/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2249) UsableRulesProof (EQUIVALENT) 291.94/213.43 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. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2250) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2251) QReductionProof (EQUIVALENT) 291.94/213.43 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.43 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2252) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2253) TransformationProof (EQUIVALENT) 291.94/213.43 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2254) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2255) UsableRulesProof (EQUIVALENT) 291.94/213.43 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. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2256) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2257) QReductionProof (EQUIVALENT) 291.94/213.43 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.43 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2258) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2259) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2260) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2261) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2262) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2263) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2264) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2265) DependencyGraphProof (EQUIVALENT) 291.94/213.43 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2266) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2267) InductionCalculusProof (EQUIVALENT) 291.94/213.43 Note that final constraints are written in bold face. 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 For Pair new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: 291.94/213.43 *We consider the chain new_takeWhile19(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile19(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) -> new_takeWhile19(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: 291.94/213.43 291.94/213.43 (1) (new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile19(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) ==> new_takeWhile19(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: 291.94/213.43 291.94/213.43 (2) (Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile19(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: 291.94/213.43 291.94/213.43 (3) (new_not8=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x9)) ==> new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 (4) (new_not7(x11, x12)=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x11)) ==> new_takeWhile19(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 291.94/213.43 291.94/213.43 (5) (new_not8=MyTrue ==> new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (4) using rules (I), (II) which results in the following new constraint: 291.94/213.43 291.94/213.43 (6) (new_not7(x11, x12)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile19(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: 291.94/213.43 291.94/213.43 (7) (new_not4=MyTrue ==> new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (7) using rule (IV) which results in the following new constraint: 291.94/213.43 291.94/213.43 (8) (new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x11, x12)=MyTrue which results in the following new constraints: 291.94/213.43 291.94/213.43 (9) (new_not12(x14, x13)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile19(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 (10) (new_not8=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x15 ==> new_takeWhile19(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (9) using rule (IV) which results in the following new constraint: 291.94/213.43 291.94/213.43 (11) (new_takeWhile19(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 We simplified constraint (10) using rule (IV) which results in the following new constraint: 291.94/213.43 291.94/213.43 (12) (new_takeWhile19(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 To summarize, we get the following constraints P__>=_ for the following pairs. 291.94/213.43 291.94/213.43 *new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 291.94/213.43 *(new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 *(new_takeWhile19(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 *(new_takeWhile19(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 291.94/213.43 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. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2268) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2269) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) 291.94/213.43 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 291.94/213.43 new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2270) UsableRulesProof (EQUIVALENT) 291.94/213.43 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. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2271) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2272) QReductionProof (EQUIVALENT) 291.94/213.43 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.43 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_primPlusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2273) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2274) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2275) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2276) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2277) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2278) UsableRulesProof (EQUIVALENT) 291.94/213.43 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. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2279) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2280) QReductionProof (EQUIVALENT) 291.94/213.43 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.43 291.94/213.43 new_primPlusInt1(x0, Main.Neg(x1)) 291.94/213.43 new_primPlusInt1(x0, Main.Pos(x1)) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2281) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2282) TransformationProof (EQUIVALENT) 291.94/213.43 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2283) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2284) DependencyGraphProof (EQUIVALENT) 291.94/213.43 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2285) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2286) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.43 291.94/213.43 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2287) 291.94/213.43 Obligation: 291.94/213.43 Q DP problem: 291.94/213.43 The TRS P consists of the following rules: 291.94/213.43 291.94/213.43 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.43 291.94/213.43 The TRS R consists of the following rules: 291.94/213.43 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.43 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.43 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.43 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.43 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.43 new_not10 -> new_not5 291.94/213.43 new_not5 -> MyTrue 291.94/213.43 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.43 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.43 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.43 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.43 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.43 new_not8 -> new_not4 291.94/213.43 new_not4 -> MyFalse 291.94/213.43 new_not11 -> new_not5 291.94/213.43 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.43 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.43 291.94/213.43 The set Q consists of the following terms: 291.94/213.43 291.94/213.43 new_not10 291.94/213.43 new_not8 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.43 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.43 new_not7(x0, Main.Zero) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Zero, Main.Zero) 291.94/213.43 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.43 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.43 new_not7(x0, Main.Succ(x1)) 291.94/213.43 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.43 new_not9(Main.Zero, x0) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.43 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.43 new_not4 291.94/213.43 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.43 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.43 new_not11 291.94/213.43 new_not5 291.94/213.43 new_not9(Main.Succ(x0), x1) 291.94/213.43 291.94/213.43 We have to consider all minimal (P,Q,R)-chains. 291.94/213.43 ---------------------------------------- 291.94/213.43 291.94/213.43 (2288) TransformationProof (EQUIVALENT) 291.94/213.43 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.43 291.94/213.43 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2289) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2290) TransformationProof (EQUIVALENT) 291.94/213.44 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2291) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2292) DependencyGraphProof (EQUIVALENT) 291.94/213.44 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2293) 291.94/213.44 Complex Obligation (AND) 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2294) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2295) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2296) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2297) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2298) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2299) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2300) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2301) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2302) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2303) QReductionProof (EQUIVALENT) 291.94/213.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2304) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2305) TransformationProof (EQUIVALENT) 291.94/213.44 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11)) 291.94/213.44 (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2306) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.44 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2307) DependencyGraphProof (EQUIVALENT) 291.94/213.44 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2308) 291.94/213.44 Complex Obligation (AND) 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2309) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2310) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2311) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2312) QReductionProof (EQUIVALENT) 291.94/213.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.44 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2313) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_not4 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2314) TransformationProof (EQUIVALENT) 291.94/213.44 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2315) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_not4 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2316) QDPSizeChangeProof (EQUIVALENT) 291.94/213.44 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.44 291.94/213.44 Order:EMB rules! 291.94/213.44 291.94/213.44 AFS: 291.94/213.44 Main.Zero = Main.Zero 291.94/213.44 291.94/213.44 MyTrue = MyTrue 291.94/213.44 291.94/213.44 Main.Neg(x1) = x1 291.94/213.44 291.94/213.44 Main.Succ(x1) = Main.Succ(x1) 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 From the DPs we obtained the following set of size-change graphs: 291.94/213.44 *new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.94/213.44 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.44 none 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2317) 291.94/213.44 YES 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2318) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2319) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2320) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2321) QReductionProof (EQUIVALENT) 291.94/213.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2322) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2323) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5)) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2324) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2325) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2326) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2327) QReductionProof (EQUIVALENT) 291.94/213.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.44 291.94/213.44 new_not11 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2328) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2329) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue)) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2330) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2331) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2332) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.44 291.94/213.44 R is empty. 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2333) QReductionProof (EQUIVALENT) 291.94/213.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.44 291.94/213.44 new_not5 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2334) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.44 291.94/213.44 R is empty. 291.94/213.44 Q is empty. 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2335) TransformationProof (EQUIVALENT) 291.94/213.44 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue)) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2336) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) 291.94/213.44 291.94/213.44 R is empty. 291.94/213.44 Q is empty. 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2337) QDPSizeChangeProof (EQUIVALENT) 291.94/213.44 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.44 291.94/213.44 Order:EMB rules! 291.94/213.44 291.94/213.44 AFS: 291.94/213.44 Main.Zero = Main.Zero 291.94/213.44 291.94/213.44 MyTrue = MyTrue 291.94/213.44 291.94/213.44 Main.Neg(x1) = x1 291.94/213.44 291.94/213.44 Main.Pos(x1) = Main.Pos 291.94/213.44 291.94/213.44 Main.Succ(x1) = Main.Succ(x1) 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 From the DPs we obtained the following set of size-change graphs: 291.94/213.44 *new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) 291.94/213.44 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 291.94/213.44 291.94/213.44 291.94/213.44 291.94/213.44 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.44 none 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2338) 291.94/213.44 YES 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2339) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2340) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2341) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2342) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2343) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2344) TransformationProof (EQUIVALENT) 291.94/213.44 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2345) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2346) DependencyGraphProof (EQUIVALENT) 291.94/213.44 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2347) 291.94/213.44 Complex Obligation (AND) 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2348) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.44 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2349) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2350) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2351) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2352) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2353) TransformationProof (EQUIVALENT) 291.94/213.44 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.44 291.94/213.44 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2354) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.44 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.44 new_not10 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.44 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2355) UsableRulesProof (EQUIVALENT) 291.94/213.44 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. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2356) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2357) QReductionProof (EQUIVALENT) 291.94/213.44 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.44 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.44 new_not7(x0, Main.Zero) 291.94/213.44 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.44 new_not7(x0, Main.Succ(x1)) 291.94/213.44 291.94/213.44 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2358) 291.94/213.44 Obligation: 291.94/213.44 Q DP problem: 291.94/213.44 The TRS P consists of the following rules: 291.94/213.44 291.94/213.44 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.44 291.94/213.44 The TRS R consists of the following rules: 291.94/213.44 291.94/213.44 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.44 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.44 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.44 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.44 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.44 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.44 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.44 new_not8 -> new_not4 291.94/213.44 new_not4 -> MyFalse 291.94/213.44 new_not11 -> new_not5 291.94/213.44 new_not5 -> MyTrue 291.94/213.44 new_not10 -> new_not5 291.94/213.44 291.94/213.44 The set Q consists of the following terms: 291.94/213.44 291.94/213.44 new_not10 291.94/213.44 new_not8 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Zero, Main.Zero) 291.94/213.44 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.44 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.44 new_not9(Main.Zero, x0) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.44 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.44 new_not4 291.94/213.44 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.44 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.44 new_not11 291.94/213.44 new_not5 291.94/213.44 new_not9(Main.Succ(x0), x1) 291.94/213.44 291.94/213.44 We have to consider all minimal (P,Q,R)-chains. 291.94/213.44 ---------------------------------------- 291.94/213.44 291.94/213.44 (2359) TransformationProof (EQUIVALENT) 291.94/213.44 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11)) 291.94/213.45 (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2360) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2361) DependencyGraphProof (EQUIVALENT) 291.94/213.45 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2362) 291.94/213.45 Complex Obligation (AND) 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2363) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2364) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2365) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2366) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2367) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_not4 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2368) TransformationProof (EQUIVALENT) 291.94/213.45 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2369) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_not4 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2370) QDPSizeChangeProof (EQUIVALENT) 291.94/213.45 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.45 291.94/213.45 Order:EMB rules! 291.94/213.45 291.94/213.45 AFS: 291.94/213.45 Main.Zero = Main.Zero 291.94/213.45 291.94/213.45 MyTrue = MyTrue 291.94/213.45 291.94/213.45 Main.Neg(x1) = x1 291.94/213.45 291.94/213.45 Main.Succ(x1) = Main.Succ(x1) 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 From the DPs we obtained the following set of size-change graphs: 291.94/213.45 *new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.94/213.45 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.45 none 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2371) 291.94/213.45 YES 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2372) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2373) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2374) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2375) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2376) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2377) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5)) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2378) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2379) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2380) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2381) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2382) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2383) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue)) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2384) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2385) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2386) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.45 291.94/213.45 R is empty. 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2387) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2388) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.45 291.94/213.45 R is empty. 291.94/213.45 Q is empty. 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2389) TransformationProof (EQUIVALENT) 291.94/213.45 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue)) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2390) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) 291.94/213.45 291.94/213.45 R is empty. 291.94/213.45 Q is empty. 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2391) QDPSizeChangeProof (EQUIVALENT) 291.94/213.45 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.45 291.94/213.45 Order:EMB rules! 291.94/213.45 291.94/213.45 AFS: 291.94/213.45 Main.Zero = Main.Zero 291.94/213.45 291.94/213.45 MyTrue = MyTrue 291.94/213.45 291.94/213.45 Main.Neg(x1) = x1 291.94/213.45 291.94/213.45 Main.Pos(x1) = Main.Pos 291.94/213.45 291.94/213.45 Main.Succ(x1) = Main.Succ(x1) 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 From the DPs we obtained the following set of size-change graphs: 291.94/213.45 *new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) 291.94/213.45 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.45 none 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2392) 291.94/213.45 YES 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2393) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2394) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2395) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2396) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2397) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2398) TransformationProof (EQUIVALENT) 291.94/213.45 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2399) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2400) DependencyGraphProof (EQUIVALENT) 291.94/213.45 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2401) 291.94/213.45 Complex Obligation (AND) 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2402) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.45 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2403) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2404) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2405) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2406) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2407) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2408) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.45 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.45 new_not10 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.45 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2409) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2410) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2411) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not7(x0, Main.Zero) 291.94/213.45 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.45 new_not7(x0, Main.Succ(x1)) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2412) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2413) TransformationProof (EQUIVALENT) 291.94/213.45 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11)) 291.94/213.45 (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2414) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2415) DependencyGraphProof (EQUIVALENT) 291.94/213.45 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2416) 291.94/213.45 Complex Obligation (AND) 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2417) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2418) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2419) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2420) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2421) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_not4 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2422) TransformationProof (EQUIVALENT) 291.94/213.45 By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2423) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_not4 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2424) QDPSizeChangeProof (EQUIVALENT) 291.94/213.45 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.45 291.94/213.45 Order:EMB rules! 291.94/213.45 291.94/213.45 AFS: 291.94/213.45 Main.Zero = Main.Zero 291.94/213.45 291.94/213.45 MyTrue = MyTrue 291.94/213.45 291.94/213.45 Main.Neg(x1) = x1 291.94/213.45 291.94/213.45 Main.Succ(x1) = Main.Succ(x1) 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 From the DPs we obtained the following set of size-change graphs: 291.94/213.45 *new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.94/213.45 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.94/213.45 291.94/213.45 291.94/213.45 291.94/213.45 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.45 none 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2425) 291.94/213.45 YES 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2426) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.45 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.45 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.45 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.45 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.45 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.45 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.45 new_not8 -> new_not4 291.94/213.45 new_not4 -> MyFalse 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 new_not10 -> new_not5 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2427) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2428) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2429) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_not10 291.94/213.45 new_not8 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Zero, Main.Zero) 291.94/213.45 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.45 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.45 new_not9(Main.Zero, x0) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.45 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.45 new_not4 291.94/213.45 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.45 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.45 new_not9(Main.Succ(x0), x1) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2430) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2431) TransformationProof (EQUIVALENT) 291.94/213.45 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.45 291.94/213.45 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5)) 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2432) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not11 -> new_not5 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2433) UsableRulesProof (EQUIVALENT) 291.94/213.45 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. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2434) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.45 291.94/213.45 The TRS R consists of the following rules: 291.94/213.45 291.94/213.45 new_not5 -> MyTrue 291.94/213.45 291.94/213.45 The set Q consists of the following terms: 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 new_not5 291.94/213.45 291.94/213.45 We have to consider all minimal (P,Q,R)-chains. 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2435) QReductionProof (EQUIVALENT) 291.94/213.45 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.45 291.94/213.45 new_not11 291.94/213.45 291.94/213.45 291.94/213.45 ---------------------------------------- 291.94/213.45 291.94/213.45 (2436) 291.94/213.45 Obligation: 291.94/213.45 Q DP problem: 291.94/213.45 The TRS P consists of the following rules: 291.94/213.45 291.94/213.45 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not5 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2437) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue)) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2438) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not5 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2439) UsableRulesProof (EQUIVALENT) 291.94/213.46 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. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2440) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.46 291.94/213.46 R is empty. 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not5 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2441) QReductionProof (EQUIVALENT) 291.94/213.46 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.46 291.94/213.46 new_not5 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2442) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) 291.94/213.46 291.94/213.46 R is empty. 291.94/213.46 Q is empty. 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2443) TransformationProof (EQUIVALENT) 291.94/213.46 By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue)) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2444) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) 291.94/213.46 291.94/213.46 R is empty. 291.94/213.46 Q is empty. 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2445) QDPSizeChangeProof (EQUIVALENT) 291.94/213.46 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.46 291.94/213.46 Order:EMB rules! 291.94/213.46 291.94/213.46 AFS: 291.94/213.46 Main.Zero = Main.Zero 291.94/213.46 291.94/213.46 MyTrue = MyTrue 291.94/213.46 291.94/213.46 Main.Neg(x1) = x1 291.94/213.46 291.94/213.46 Main.Pos(x1) = Main.Pos 291.94/213.46 291.94/213.46 Main.Succ(x1) = Main.Succ(x1) 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 From the DPs we obtained the following set of size-change graphs: 291.94/213.46 *new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) 291.94/213.46 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.46 none 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2446) 291.94/213.46 YES 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2447) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2448) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2449) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2450) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2451) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2452) TransformationProof (EQUIVALENT) 291.94/213.46 By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2453) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2454) DependencyGraphProof (EQUIVALENT) 291.94/213.46 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2455) 291.94/213.46 Complex Obligation (AND) 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2456) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2457) UsableRulesProof (EQUIVALENT) 291.94/213.46 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. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2458) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2459) QReductionProof (EQUIVALENT) 291.94/213.46 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.46 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2460) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2461) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2462) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2463) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2464) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2465) UsableRulesProof (EQUIVALENT) 291.94/213.46 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. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2466) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2467) QReductionProof (EQUIVALENT) 291.94/213.46 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2468) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2469) TransformationProof (EQUIVALENT) 291.94/213.46 By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))),new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2))))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2470) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not10 -> new_not5 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2471) QDPSizeChangeProof (EQUIVALENT) 291.94/213.46 We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.46 291.94/213.46 Order:EMB rules! 291.94/213.46 291.94/213.46 AFS: 291.94/213.46 Main.Zero = Main.Zero 291.94/213.46 291.94/213.46 MyTrue = MyTrue 291.94/213.46 291.94/213.46 Main.Neg(x1) = x1 291.94/213.46 291.94/213.46 Main.Succ(x1) = Main.Succ(x1) 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 From the DPs we obtained the following set of size-change graphs: 291.94/213.46 *new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.94/213.46 The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.46 none 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2472) 291.94/213.46 YES 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2473) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2474) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2475) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2476) TransformationProof (EQUIVALENT) 291.94/213.46 By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: 291.94/213.46 291.94/213.46 (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) 291.94/213.46 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2477) 291.94/213.46 Obligation: 291.94/213.46 Q DP problem: 291.94/213.46 The TRS P consists of the following rules: 291.94/213.46 291.94/213.46 new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) 291.94/213.46 291.94/213.46 The TRS R consists of the following rules: 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 291.94/213.46 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 291.94/213.46 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) 291.94/213.46 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 291.94/213.46 new_not10 -> new_not5 291.94/213.46 new_not5 -> MyTrue 291.94/213.46 new_not9(Main.Zero, wy2000) -> new_not11 291.94/213.46 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) 291.94/213.46 new_not12(Main.Zero, Main.Zero) -> new_not10 291.94/213.46 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) 291.94/213.46 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 291.94/213.46 new_not8 -> new_not4 291.94/213.46 new_not4 -> MyFalse 291.94/213.46 new_not11 -> new_not5 291.94/213.46 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) 291.94/213.46 new_not7(wy2000, Main.Zero) -> new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 291.94/213.46 The set Q consists of the following terms: 291.94/213.46 291.94/213.46 new_not10 291.94/213.46 new_not8 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) 291.94/213.46 new_primMinusNat0(Main.Succ(x0), Main.Zero) 291.94/213.46 new_not7(x0, Main.Zero) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Zero, Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) 291.94/213.46 new_not12(Main.Zero, Main.Succ(x0)) 291.94/213.46 new_not7(x0, Main.Succ(x1)) 291.94/213.46 new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not12(Main.Succ(x0), Main.Zero) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_not12(Main.Succ(x0), Main.Succ(x1)) 291.94/213.46 new_not9(Main.Zero, x0) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 291.94/213.46 new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 291.94/213.46 new_not4 291.94/213.46 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) 291.94/213.46 new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) 291.94/213.46 new_not11 291.94/213.46 new_not5 291.94/213.46 new_not9(Main.Succ(x0), x1) 291.94/213.46 291.94/213.46 We have to consider all minimal (P,Q,R)-chains. 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2478) QDPSizeChangeProof (EQUIVALENT) 291.94/213.46 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 291.94/213.46 291.94/213.46 Order:Polynomial interpretation [POLO]: 291.94/213.46 291.94/213.46 POL(Main.Neg(x_1)) = x_1 291.94/213.46 POL(Main.Pos(x_1)) = 0 291.94/213.46 POL(Main.Succ(x_1)) = 1 + x_1 291.94/213.46 POL(Main.Zero) = 0 291.94/213.46 POL(MyTrue) = 1 291.94/213.46 POL(new_primMinusNat0(x_1, x_2)) = x_2 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 From the DPs we obtained the following set of size-change graphs: 291.94/213.46 *new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) 291.94/213.46 The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 291.94/213.46 291.94/213.46 291.94/213.46 291.94/213.46 We oriented the following set of usable rules [AAECC05,FROCOS05]. 291.94/213.46 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 291.94/213.46 new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) 291.94/213.46 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2479) 291.94/213.46 YES 291.94/213.46 291.94/213.46 ---------------------------------------- 291.94/213.46 291.94/213.46 (2480) Narrow (COMPLETE) 291.94/213.46 Haskell To QDPs 291.94/213.46 291.94/213.46 digraph dp_graph { 291.94/213.46 node [outthreshold=100, inthreshold=100];1[label="enumFromThenToRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 291.94/213.46 3[label="enumFromThenToRatio wy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 291.94/213.46 4[label="enumFromThenToRatio wy3 wy4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 291.94/213.46 5[label="enumFromThenToRatio wy3 wy4 wy5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 291.94/213.46 6 -> 897[label="",style="dashed", color="red", weight=0]; 291.94/213.46 6[label="map toEnumRatio (enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5))",fontsize=16,color="magenta"];6 -> 898[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 898[label="enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];898 -> 1395[label="",style="solid", color="black", weight=3]; 291.94/213.46 897[label="map toEnumRatio wy13",fontsize=16,color="burlywood",shape="triangle"];17123[label="wy13/Cons wy130 wy131",fontsize=10,color="white",style="solid",shape="box"];897 -> 17123[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17123 -> 1396[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17124[label="wy13/Nil",fontsize=10,color="white",style="solid",shape="box"];897 -> 17124[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17124 -> 1397[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1395[label="numericEnumFromThenTo (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];1395 -> 1398[label="",style="solid", color="black", weight=3]; 291.94/213.46 1396[label="map toEnumRatio (Cons wy130 wy131)",fontsize=16,color="black",shape="box"];1396 -> 1399[label="",style="solid", color="black", weight=3]; 291.94/213.46 1397[label="map toEnumRatio Nil",fontsize=16,color="black",shape="box"];1397 -> 1400[label="",style="solid", color="black", weight=3]; 291.94/213.46 1398[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (numericEnumFromThen (fromEnumRatio wy3) (fromEnumRatio wy4))",fontsize=16,color="black",shape="box"];1398 -> 1401[label="",style="solid", color="black", weight=3]; 291.94/213.46 1399[label="Cons (toEnumRatio wy130) (map toEnumRatio wy131)",fontsize=16,color="green",shape="box"];1399 -> 1402[label="",style="dashed", color="green", weight=3]; 291.94/213.46 1399 -> 1403[label="",style="dashed", color="green", weight=3]; 291.94/213.46 1400[label="Nil",fontsize=16,color="green",shape="box"];1401[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1401 -> 1404[label="",style="solid", color="black", weight=3]; 291.94/213.46 1402[label="toEnumRatio wy130",fontsize=16,color="black",shape="box"];1402 -> 1405[label="",style="solid", color="black", weight=3]; 291.94/213.46 1403 -> 897[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1403[label="map toEnumRatio wy131",fontsize=16,color="magenta"];1403 -> 1406[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1404[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1404 -> 1407[label="",style="solid", color="black", weight=3]; 291.94/213.46 1405[label="fromIntRatio wy130",fontsize=16,color="black",shape="box"];1405 -> 1408[label="",style="solid", color="black", weight=3]; 291.94/213.46 1406[label="wy131",fontsize=16,color="green",shape="box"];1407[label="takeWhile2 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1407 -> 1409[label="",style="solid", color="black", weight=3]; 291.94/213.46 1408[label="intToRatio wy130",fontsize=16,color="black",shape="box"];1408 -> 1410[label="",style="solid", color="black", weight=3]; 291.94/213.46 1409[label="takeWhile1 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1409 -> 1411[label="",style="solid", color="black", weight=3]; 291.94/213.46 1410[label="CnPc (fromIntMyInt wy130) (fromIntMyInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];1410 -> 1412[label="",style="dashed", color="green", weight=3]; 291.94/213.46 1410 -> 1413[label="",style="dashed", color="green", weight=3]; 291.94/213.46 1411[label="takeWhile1 (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1411 -> 1414[label="",style="solid", color="black", weight=3]; 291.94/213.46 1412[label="fromIntMyInt wy130",fontsize=16,color="black",shape="triangle"];1412 -> 1415[label="",style="solid", color="black", weight=3]; 291.94/213.46 1413 -> 1412[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1413[label="fromIntMyInt (Pos (Succ Zero))",fontsize=16,color="magenta"];1413 -> 1416[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1414[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1414 -> 1417[label="",style="solid", color="black", weight=3]; 291.94/213.46 1415[label="wy130",fontsize=16,color="green",shape="box"];1416[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1417[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1417 -> 1418[label="",style="solid", color="black", weight=3]; 291.94/213.46 1418[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1418 -> 1419[label="",style="solid", color="black", weight=3]; 291.94/213.46 1419[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1419 -> 1420[label="",style="solid", color="black", weight=3]; 291.94/213.46 1420[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1420 -> 1421[label="",style="solid", color="black", weight=3]; 291.94/213.46 1421[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1421 -> 1422[label="",style="solid", color="black", weight=3]; 291.94/213.46 1422[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1422 -> 1423[label="",style="solid", color="black", weight=3]; 291.94/213.46 1423[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17125[label="wy4/CnPc wy40 wy41",fontsize=10,color="white",style="solid",shape="box"];1423 -> 17125[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17125 -> 1424[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1424[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1424 -> 1425[label="",style="solid", color="black", weight=3]; 291.94/213.46 1425[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1425 -> 1426[label="",style="solid", color="black", weight=3]; 291.94/213.46 1426[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1426 -> 1427[label="",style="solid", color="black", weight=3]; 291.94/213.46 1427[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1427 -> 1428[label="",style="solid", color="black", weight=3]; 291.94/213.46 1428[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1428 -> 1429[label="",style="solid", color="black", weight=3]; 291.94/213.46 1429[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1429 -> 1430[label="",style="solid", color="black", weight=3]; 291.94/213.46 1430[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1430 -> 1431[label="",style="solid", color="black", weight=3]; 291.94/213.46 1431[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17126[label="wy40/Pos wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17126[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17126 -> 1432[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17127[label="wy40/Neg wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17127[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17127 -> 1433[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1432[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17128[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17128[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17128 -> 1434[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17129[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17129[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17129 -> 1435[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1433[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17130[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17130[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17130 -> 1436[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17131[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17131[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17131 -> 1437[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1434[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17132[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17132[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17132 -> 1438[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17133[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17133[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17133 -> 1439[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1435[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17134[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17134[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17134 -> 1440[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17135[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17135[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17135 -> 1441[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1436[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17136[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17136[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17136 -> 1442[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17137[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17137[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17137 -> 1443[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1437[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17138[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17138[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17138 -> 1444[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17139[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17139[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17139 -> 1445[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1438[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1438 -> 1446[label="",style="solid", color="black", weight=3]; 291.94/213.46 1439[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1439 -> 1447[label="",style="solid", color="black", weight=3]; 291.94/213.46 1440[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1440 -> 1448[label="",style="solid", color="black", weight=3]; 291.94/213.46 1441[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1441 -> 1449[label="",style="solid", color="black", weight=3]; 291.94/213.46 1442[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1442 -> 1450[label="",style="solid", color="black", weight=3]; 291.94/213.46 1443[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1443 -> 1451[label="",style="solid", color="black", weight=3]; 291.94/213.46 1444[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1444 -> 1452[label="",style="solid", color="black", weight=3]; 291.94/213.46 1445[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1445 -> 1453[label="",style="solid", color="black", weight=3]; 291.94/213.46 1446[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17140[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17140[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17140 -> 1454[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17141[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17141[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17141 -> 1455[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1447[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="triangle"];1447 -> 1456[label="",style="solid", color="black", weight=3]; 291.94/213.46 1448[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17142[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17142[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17142 -> 1457[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17143[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17143[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17143 -> 1458[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1449 -> 1447[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1449[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1448[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1450[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1459[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1450 -> 1460[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1451 -> 1447[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1451[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1446[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1452[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1461[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1452 -> 1462[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1453 -> 1447[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1453[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1454[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1454 -> 1463[label="",style="solid", color="black", weight=3]; 291.94/213.46 1455[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1455 -> 1464[label="",style="solid", color="black", weight=3]; 291.94/213.46 1456[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3))) (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1456 -> 1465[label="",style="solid", color="black", weight=3]; 291.94/213.46 1457[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1457 -> 1466[label="",style="solid", color="black", weight=3]; 291.94/213.46 1458[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1458 -> 1467[label="",style="solid", color="black", weight=3]; 291.94/213.46 1459[label="wy4100",fontsize=16,color="green",shape="box"];1460[label="wy400",fontsize=16,color="green",shape="box"];1461[label="wy400",fontsize=16,color="green",shape="box"];1462[label="wy4100",fontsize=16,color="green",shape="box"];1463[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17144[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17144[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17144 -> 1468[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17145[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17145[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17145 -> 1469[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1464 -> 13676[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1464[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1464 -> 13677[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13678[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13679[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13680[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13681[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13682[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13683[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13684[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13685[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13686[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1464 -> 13687[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1465[label="error []",fontsize=16,color="red",shape="box"];1466[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17146[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17146[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17146 -> 1471[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17147[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17147[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17147 -> 1472[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1467 -> 16126[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1467[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1467 -> 16127[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16128[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16129[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16130[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16131[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16132[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16133[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16134[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16135[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16136[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1467 -> 16137[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1468[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17148[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17148[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17148 -> 1474[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17149[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17149[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17149 -> 1475[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1469[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17150[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17150[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17150 -> 1476[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17151[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17151[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17151 -> 1477[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 13677 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13678 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13679 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13679[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13680 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13681 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13682 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13682[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13683 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13683[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13683 -> 14824[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13684 -> 14825[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13684[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13684 -> 14826[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13685 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13685[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13686 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13686[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13686 -> 14832[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13687 -> 14825[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13687[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13687 -> 14827[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13676[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 wy792 wy738)",fontsize=16,color="burlywood",shape="triangle"];17152[label="wy792/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17152[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17152 -> 14833[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17153[label="wy792/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17153[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17153 -> 14834[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1471[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17154[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17154[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17154 -> 1479[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17155[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17155[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17155 -> 1480[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1472[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17156[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17156[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17156 -> 1481[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17157[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17157[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17157 -> 1482[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 16127 -> 16170[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16127[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16127 -> 16171[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16128 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16128[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16129 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16129[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16129 -> 16177[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16130 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16130[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16131 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16131[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16132 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16132[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16132 -> 16178[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16133 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16133[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16134 -> 16170[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16134[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16134 -> 16172[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16135 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16135[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16136 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16136[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16137 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16137[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16126[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 wy808 wy756)",fontsize=16,color="burlywood",shape="triangle"];17158[label="wy808/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17158[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17158 -> 16179[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17159[label="wy808/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17159[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17159 -> 16180[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1474[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1474 -> 1484[label="",style="solid", color="black", weight=3]; 291.94/213.46 1475[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1475 -> 1485[label="",style="solid", color="black", weight=3]; 291.94/213.46 1476[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1476 -> 1486[label="",style="solid", color="black", weight=3]; 291.94/213.46 1477[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1477 -> 1487[label="",style="solid", color="black", weight=3]; 291.94/213.46 2355[label="fromEnumRatio wy3",fontsize=16,color="black",shape="triangle"];2355 -> 2368[label="",style="solid", color="black", weight=3]; 291.94/213.46 14824[label="wy5",fontsize=16,color="green",shape="box"];14826 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14826[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14825[label="not (esEsOrdering (primCmpInt (Pos Zero) wy794) LT)",fontsize=16,color="burlywood",shape="triangle"];17160[label="wy794/Pos wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17160[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17160 -> 14835[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17161[label="wy794/Neg wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17161[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17161 -> 14836[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 14832[label="wy5",fontsize=16,color="green",shape="box"];14827 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14827[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14833[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14833 -> 14883[label="",style="solid", color="black", weight=3]; 291.94/213.46 14834[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];14834 -> 14884[label="",style="solid", color="black", weight=3]; 291.94/213.46 1479[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1479 -> 1489[label="",style="solid", color="black", weight=3]; 291.94/213.46 1480[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1480 -> 1490[label="",style="solid", color="black", weight=3]; 291.94/213.46 1481[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1481 -> 1491[label="",style="solid", color="black", weight=3]; 291.94/213.46 1482[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1482 -> 1492[label="",style="solid", color="black", weight=3]; 291.94/213.46 16171 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16171[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16170[label="not (esEsOrdering (primCmpInt (Neg Zero) wy810) LT)",fontsize=16,color="burlywood",shape="triangle"];17162[label="wy810/Pos wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17162[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17162 -> 16181[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17163[label="wy810/Neg wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17163[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17163 -> 16182[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 16177[label="wy5",fontsize=16,color="green",shape="box"];16178[label="wy5",fontsize=16,color="green",shape="box"];16172 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16172[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16179[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16179 -> 16190[label="",style="solid", color="black", weight=3]; 291.94/213.46 16180[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];16180 -> 16191[label="",style="solid", color="black", weight=3]; 291.94/213.46 1484 -> 11246[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1484[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1484 -> 11247[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11248[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11249[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11250[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11251[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11252[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11253[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11254[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11255[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11256[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11257[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11258[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11259[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11260[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1484 -> 11261[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1485[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1485 -> 1496[label="",style="solid", color="black", weight=3]; 291.94/213.46 1486[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1486 -> 1497[label="",style="solid", color="black", weight=3]; 291.94/213.46 1487[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1487 -> 1498[label="",style="solid", color="black", weight=3]; 291.94/213.46 2368[label="truncateRatio wy3",fontsize=16,color="black",shape="box"];2368 -> 2477[label="",style="solid", color="black", weight=3]; 291.94/213.46 14835[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17164[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17164[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17164 -> 14885[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17165[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17165[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17165 -> 14886[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 14836[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17166[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17166[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17166 -> 14887[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17167[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17167[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17167 -> 14888[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 14883 -> 14904[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14883[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];14883 -> 14905[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14884[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];14884 -> 14906[label="",style="solid", color="black", weight=3]; 291.94/213.46 1489 -> 11563[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1489[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1489 -> 11564[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11565[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11566[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11567[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11568[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11569[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11570[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11571[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11572[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11573[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11574[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11575[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11576[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11577[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1489 -> 11578[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1490[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1490 -> 1502[label="",style="solid", color="black", weight=3]; 291.94/213.46 1491[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1491 -> 1503[label="",style="solid", color="black", weight=3]; 291.94/213.46 1492[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1492 -> 1504[label="",style="solid", color="black", weight=3]; 291.94/213.46 16181[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17168[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17168[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17168 -> 16192[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17169[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17169[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17169 -> 16193[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 16182[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17170[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17170[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17170 -> 16194[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17171[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17171[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17171 -> 16195[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 16190 -> 16232[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16190[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16190 -> 16233[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16191[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16191 -> 16234[label="",style="solid", color="black", weight=3]; 291.94/213.46 11247 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11247[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11248[label="wy41000",fontsize=16,color="green",shape="box"];11249[label="wy40000",fontsize=16,color="green",shape="box"];11250 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11250[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11251 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11251[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11252 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11252[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11253 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11253[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11253 -> 11412[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 11254 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11254[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11255[label="wy40000",fontsize=16,color="green",shape="box"];11256 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11256[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11257 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11257[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11258 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11258[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11259[label="wy41000",fontsize=16,color="green",shape="box"];11260 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11260[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11261 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11261[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11261 -> 11413[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 11246[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="triangle"];17172[label="wy727/Succ wy7270",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17172[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17172 -> 11414[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17173[label="wy727/Zero",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17173[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17173 -> 11415[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1496 -> 12619[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1496[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1496 -> 12620[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12621[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12622[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12623[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12624[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12625[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12626[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12627[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12628[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12629[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12630[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12631[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1496 -> 12632[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13676[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1497[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1497 -> 13721[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13722[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13723[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13724[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13725[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13726[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13727[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13728[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13729[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13730[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1497 -> 13731[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12619[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1498[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1498 -> 12633[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12634[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12635[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12636[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12637[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12638[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12639[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12640[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12641[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12642[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12643[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12644[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1498 -> 12645[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 2477[label="truncateM wy3",fontsize=16,color="black",shape="box"];2477 -> 2485[label="",style="solid", color="black", weight=3]; 291.94/213.46 14885[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14885 -> 14907[label="",style="solid", color="black", weight=3]; 291.94/213.46 14886[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];14886 -> 14908[label="",style="solid", color="black", weight=3]; 291.94/213.46 14887[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14887 -> 14909[label="",style="solid", color="black", weight=3]; 291.94/213.46 14888[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];14888 -> 14910[label="",style="solid", color="black", weight=3]; 291.94/213.46 14905 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14905[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];14905 -> 14911[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14905 -> 14912[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14904[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) wy801",fontsize=16,color="burlywood",shape="triangle"];17174[label="wy801/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17174[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17174 -> 14913[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17175[label="wy801/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17175[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17175 -> 14914[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 14906[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14906 -> 14928[label="",style="solid", color="black", weight=3]; 291.94/213.46 11564[label="wy41000",fontsize=16,color="green",shape="box"];11565 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11565[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11566 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11566[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11566 -> 11729[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 11567 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11567[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11568 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11568[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11569[label="wy41000",fontsize=16,color="green",shape="box"];11570 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11570[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11571[label="wy40000",fontsize=16,color="green",shape="box"];11572 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11572[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11573 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11573[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11574 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11574[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11575 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11575[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11575 -> 11730[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 11576[label="wy40000",fontsize=16,color="green",shape="box"];11577 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11577[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11578 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 11578[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11563[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="triangle"];17176[label="wy745/Succ wy7450",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17176[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17176 -> 11731[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17177[label="wy745/Zero",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17177[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17177 -> 11732[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 1502 -> 14842[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1502[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1502 -> 14843[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14844[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14845[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14846[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14847[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14848[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14849[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14850[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14851[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14852[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14853[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14854[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1502 -> 14855[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16126[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1503[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1503 -> 16149[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16150[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16151[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16152[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16153[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16154[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16155[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16156[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16157[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16158[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1503 -> 16159[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14842[label="",style="dashed", color="red", weight=0]; 291.94/213.46 1504[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1504 -> 14856[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14857[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14858[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14859[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14860[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14861[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14862[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14863[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14864[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14865[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14866[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14867[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 1504 -> 14868[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16192[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16192 -> 16235[label="",style="solid", color="black", weight=3]; 291.94/213.46 16193[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];16193 -> 16236[label="",style="solid", color="black", weight=3]; 291.94/213.46 16194[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16194 -> 16237[label="",style="solid", color="black", weight=3]; 291.94/213.46 16195[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];16195 -> 16238[label="",style="solid", color="black", weight=3]; 291.94/213.46 16233 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.46 16233[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16233 -> 16239[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16233 -> 16240[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 16232[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) wy812",fontsize=16,color="burlywood",shape="triangle"];17178[label="wy812/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17178[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17178 -> 16241[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17179[label="wy812/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17179[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17179 -> 16242[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 16234[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16234 -> 16267[label="",style="solid", color="black", weight=3]; 291.94/213.46 11412[label="wy5",fontsize=16,color="green",shape="box"];11413[label="wy5",fontsize=16,color="green",shape="box"];11414[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17180[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17180[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17180 -> 11487[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17181[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17181[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17181 -> 11488[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 11415[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17182[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17182[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17182 -> 11489[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17183[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17183[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17183 -> 11490[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 12620 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12620[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12620 -> 12658[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12620 -> 12659[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12621 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12621[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12622 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12622[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12622 -> 12660[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12623 -> 12661[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12623[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12623 -> 12662[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12623 -> 12663[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12624 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12624[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12624 -> 12674[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12624 -> 12675[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12625 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12625[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12626 -> 12661[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12626[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12626 -> 12664[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12626 -> 12665[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12627 -> 12676[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12627[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12627 -> 12677[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12627 -> 12678[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12627 -> 12679[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12628 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12628[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12629 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12629[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12630 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12630[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12630 -> 12686[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12630 -> 12687[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12631 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12631[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12632 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12632[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12632 -> 12688[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12619[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 wy771 wy738)",fontsize=16,color="burlywood",shape="triangle"];17184[label="wy771/MyTrue",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17184[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17184 -> 12689[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17185[label="wy771/MyFalse",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17185[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17185 -> 12690[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 13721 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13721[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13722 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13722[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13723 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13723[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13724 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13724[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13725 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13725[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13726 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13726[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13727 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13727[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13727 -> 14837[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13728 -> 14825[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13728[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13728 -> 14828[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13729 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13729[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13730 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13730[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13730 -> 14838[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 13731 -> 14825[label="",style="dashed", color="red", weight=0]; 291.94/213.46 13731[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13731 -> 14829[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12633 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12633[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12633 -> 12691[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12633 -> 12692[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12634 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12634[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12635 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12635[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12635 -> 12693[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12636 -> 12661[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12636[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12636 -> 12666[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12636 -> 12667[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12637 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12637[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12637 -> 12694[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12637 -> 12695[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12638 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12638[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12639 -> 12661[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12639[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12639 -> 12668[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12639 -> 12669[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12640 -> 12676[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12640[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12640 -> 12680[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12640 -> 12681[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12640 -> 12682[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12641 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12641[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12642 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12642[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12643 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12643[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12643 -> 12696[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12643 -> 12697[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 12644 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12644[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12645 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 12645[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12645 -> 12698[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 2485[label="truncateM0 wy3 (truncateVu6 wy3)",fontsize=16,color="black",shape="box"];2485 -> 2495[label="",style="solid", color="black", weight=3]; 291.94/213.46 14907[label="not (esEsOrdering (primCmpNat Zero (Succ wy79400)) LT)",fontsize=16,color="black",shape="box"];14907 -> 14929[label="",style="solid", color="black", weight=3]; 291.94/213.46 14908[label="not (esEsOrdering EQ LT)",fontsize=16,color="black",shape="triangle"];14908 -> 14930[label="",style="solid", color="black", weight=3]; 291.94/213.46 14909 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14909[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14910 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14910[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];14911[label="wy738",fontsize=16,color="green",shape="box"];14912[label="wy735",fontsize=16,color="green",shape="box"];5275[label="flip ltEsMyInt wy439 wy20",fontsize=16,color="black",shape="triangle"];5275 -> 5323[label="",style="solid", color="black", weight=3]; 291.94/213.46 14913[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];14913 -> 14931[label="",style="solid", color="black", weight=3]; 291.94/213.46 14914[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyFalse",fontsize=16,color="black",shape="box"];14914 -> 14932[label="",style="solid", color="black", weight=3]; 291.94/213.46 14928[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="box"];14928 -> 16074[label="",style="solid", color="black", weight=3]; 291.94/213.46 11729[label="wy5",fontsize=16,color="green",shape="box"];11730[label="wy5",fontsize=16,color="green",shape="box"];11731[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17186[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17186[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17186 -> 11808[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17187[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17187[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17187 -> 11809[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 11732[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17188[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17188[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17188 -> 11810[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 17189[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17189[label="",style="solid", color="burlywood", weight=9]; 291.94/213.46 17189 -> 11811[label="",style="solid", color="burlywood", weight=3]; 291.94/213.46 14843 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14843[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14843 -> 14889[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14844 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14844[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14845 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14845[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14845 -> 14890[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14845 -> 14891[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14846 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14846[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14846 -> 14892[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14846 -> 14893[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14847 -> 14894[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14847[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14847 -> 14895[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14847 -> 14896[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14847 -> 14897[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14848 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14848[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14849 -> 14915[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14849[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14849 -> 14916[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14849 -> 14917[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14850 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14850[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14851 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14851[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14852 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14852[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14852 -> 14933[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14852 -> 14934[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14853 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14853[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14853 -> 14935[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14854 -> 14915[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14854[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14854 -> 14918[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14854 -> 14919[label="",style="dashed", color="magenta", weight=3]; 291.94/213.46 14855 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.46 14855[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14842[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 wy795 wy756)",fontsize=16,color="burlywood",shape="triangle"];17190[label="wy795/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17190[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17190 -> 14936[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17191[label="wy795/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17191[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17191 -> 14937[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16149 -> 16170[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16149[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16149 -> 16173[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16150 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16150[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16151 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16151[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16151 -> 16183[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16152 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16152[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16153 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16153[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16154 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16154[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16154 -> 16184[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16155 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16155[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16156 -> 16170[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16156[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16156 -> 16174[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16157 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16157[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16158 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16158[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16159 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16159[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14856 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14856[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14856 -> 14938[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14857 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14857[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14858 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14858[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14858 -> 14939[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14858 -> 14940[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14859 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14859[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14859 -> 14941[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14859 -> 14942[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14860 -> 14894[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14860[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14860 -> 14898[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14860 -> 14899[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14860 -> 14900[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14861 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14861[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14862 -> 14915[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14862[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14862 -> 14920[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14862 -> 14921[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14863 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14863[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14864 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14864[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14865 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14865[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14865 -> 14943[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14865 -> 14944[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14866 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14866[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14866 -> 14945[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14867 -> 14915[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14867[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14867 -> 14922[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14867 -> 14923[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14868 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14868[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16235 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16235[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16236 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16236[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16237 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16237[label="not (esEsOrdering (primCmpNat (Succ wy81000) Zero) LT)",fontsize=16,color="magenta"];16237 -> 16268[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16237 -> 16269[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16238 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16238[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16239[label="wy756",fontsize=16,color="green",shape="box"];16240[label="wy753",fontsize=16,color="green",shape="box"];16241[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16241 -> 16270[label="",style="solid", color="black", weight=3]; 291.94/213.47 16242[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyFalse",fontsize=16,color="black",shape="box"];16242 -> 16271[label="",style="solid", color="black", weight=3]; 291.94/213.47 16267[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="box"];16267 -> 16315[label="",style="solid", color="black", weight=3]; 291.94/213.47 11487[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11487 -> 11559[label="",style="solid", color="black", weight=3]; 291.94/213.47 11488[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11488 -> 11560[label="",style="solid", color="black", weight=3]; 291.94/213.47 11489[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11489 -> 11561[label="",style="solid", color="black", weight=3]; 291.94/213.47 11490[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11490 -> 11562[label="",style="solid", color="black", weight=3]; 291.94/213.47 12658 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12658[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12658 -> 12699[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12659[label="Zero",fontsize=16,color="green",shape="box"];5128[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="burlywood",shape="triangle"];17192[label="wy160/Succ wy1600",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17192[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17192 -> 6025[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17193[label="wy160/Zero",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17193[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17193 -> 6026[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 12660[label="wy5",fontsize=16,color="green",shape="box"];12662 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12662[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12663 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12663[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12663 -> 12700[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12663 -> 12701[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12661[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) wy773) LT)",fontsize=16,color="burlywood",shape="triangle"];17194[label="wy773/Pos wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17194[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17194 -> 12702[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17195[label="wy773/Neg wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17195[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17195 -> 12703[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 12674 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12674[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12674 -> 12704[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12675[label="Zero",fontsize=16,color="green",shape="box"];12664 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12664[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12665 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12665[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12665 -> 12705[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12665 -> 12706[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12677 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12678 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12679 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12679[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12679 -> 12707[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12679 -> 12708[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12676[label="psMyInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="triangle"];12676 -> 12709[label="",style="solid", color="black", weight=3]; 291.94/213.47 12686 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12686[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12686 -> 13389[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12687[label="Zero",fontsize=16,color="green",shape="box"];12688[label="wy5",fontsize=16,color="green",shape="box"];12689[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];12689 -> 13390[label="",style="solid", color="black", weight=3]; 291.94/213.47 12690[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];12690 -> 13391[label="",style="solid", color="black", weight=3]; 291.94/213.47 14837[label="wy5",fontsize=16,color="green",shape="box"];14828 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14828[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14838[label="wy5",fontsize=16,color="green",shape="box"];14829 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14829[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12691 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12691[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12691 -> 13392[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12692[label="Zero",fontsize=16,color="green",shape="box"];12693[label="wy5",fontsize=16,color="green",shape="box"];12666 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12666[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12667 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12667[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12667 -> 12710[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12667 -> 12711[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12694 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12694[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12694 -> 13393[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12695[label="Zero",fontsize=16,color="green",shape="box"];12668 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12668[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12669 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12669[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12669 -> 12712[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12669 -> 12713[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12680 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12681 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12682 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12682[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12682 -> 12714[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12682 -> 12715[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12696 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12696[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12696 -> 13394[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12697[label="Zero",fontsize=16,color="green",shape="box"];12698[label="wy5",fontsize=16,color="green",shape="box"];2495[label="truncateM0 wy3 (properFractionRatio wy3)",fontsize=16,color="burlywood",shape="box"];17196[label="wy3/CnPc wy30 wy31",fontsize=10,color="white",style="solid",shape="box"];2495 -> 17196[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17196 -> 2529[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14929[label="not (esEsOrdering LT LT)",fontsize=16,color="black",shape="triangle"];14929 -> 16077[label="",style="solid", color="black", weight=3]; 291.94/213.47 14930 -> 7428[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14930[label="not MyFalse",fontsize=16,color="magenta"];13404[label="not (esEsOrdering GT LT)",fontsize=16,color="black",shape="triangle"];13404 -> 13652[label="",style="solid", color="black", weight=3]; 291.94/213.47 5323[label="ltEsMyInt wy20 wy439",fontsize=16,color="black",shape="box"];5323 -> 5496[label="",style="solid", color="black", weight=3]; 291.94/213.47 14931[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)))",fontsize=16,color="green",shape="box"];14931 -> 16078[label="",style="dashed", color="green", weight=3]; 291.94/213.47 14932[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) otherwise",fontsize=16,color="black",shape="box"];14932 -> 16079[label="",style="solid", color="black", weight=3]; 291.94/213.47 16074[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];16074 -> 16185[label="",style="solid", color="black", weight=3]; 291.94/213.47 11808[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11808 -> 12494[label="",style="solid", color="black", weight=3]; 291.94/213.47 11809[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11809 -> 12495[label="",style="solid", color="black", weight=3]; 291.94/213.47 11810[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11810 -> 12496[label="",style="solid", color="black", weight=3]; 291.94/213.47 11811[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11811 -> 12497[label="",style="solid", color="black", weight=3]; 291.94/213.47 14889[label="wy5",fontsize=16,color="green",shape="box"];14890 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14890[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14890 -> 14946[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14891[label="Zero",fontsize=16,color="green",shape="box"];14892 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14892[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14892 -> 14947[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14893[label="Zero",fontsize=16,color="green",shape="box"];14895 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14895[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14895 -> 14948[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14895 -> 14949[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14896 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14896[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14897 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14897[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14894[label="psMyInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="triangle"];14894 -> 14950[label="",style="solid", color="black", weight=3]; 291.94/213.47 14916 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14916[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14917 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14917[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14917 -> 14951[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14917 -> 14952[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14915[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) wy802) LT)",fontsize=16,color="burlywood",shape="triangle"];17197[label="wy802/Pos wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17197[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17197 -> 14953[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17198[label="wy802/Neg wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17198[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17198 -> 14954[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14933 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14933[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14933 -> 16080[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14933 -> 16081[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14934[label="Zero",fontsize=16,color="green",shape="box"];14935[label="wy5",fontsize=16,color="green",shape="box"];14918 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14918[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14919 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14919[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14919 -> 14955[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14919 -> 14956[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14936[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];14936 -> 16082[label="",style="solid", color="black", weight=3]; 291.94/213.47 14937[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];14937 -> 16083[label="",style="solid", color="black", weight=3]; 291.94/213.47 16173 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16173[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16183[label="wy5",fontsize=16,color="green",shape="box"];16184[label="wy5",fontsize=16,color="green",shape="box"];16174 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16174[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14938[label="wy5",fontsize=16,color="green",shape="box"];14939 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14939[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14939 -> 16084[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14939 -> 16085[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14940[label="Zero",fontsize=16,color="green",shape="box"];14941 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14941[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14941 -> 16086[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14941 -> 16087[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14942[label="Zero",fontsize=16,color="green",shape="box"];14898 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14898[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14898 -> 14957[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14898 -> 14958[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14899 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14899[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14900 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14900[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14920 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14920[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14921 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14921[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14921 -> 14959[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14921 -> 14960[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14943 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14943[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14943 -> 16088[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14943 -> 16089[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14944[label="Zero",fontsize=16,color="green",shape="box"];14945[label="wy5",fontsize=16,color="green",shape="box"];14922 -> 2355[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14922[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14923 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14923[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14923 -> 14961[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14923 -> 14962[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16268[label="Zero",fontsize=16,color="green",shape="box"];16269[label="Succ wy81000",fontsize=16,color="green",shape="box"];14963[label="not (esEsOrdering (primCmpNat wy774 wy77300) LT)",fontsize=16,color="burlywood",shape="triangle"];17199[label="wy774/Succ wy7740",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17199[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17199 -> 16105[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17200[label="wy774/Zero",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17200[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17200 -> 16106[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16270[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)))",fontsize=16,color="green",shape="box"];16270 -> 16316[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16271[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) otherwise",fontsize=16,color="black",shape="box"];16271 -> 16317[label="",style="solid", color="black", weight=3]; 291.94/213.47 16315[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16315 -> 16348[label="",style="solid", color="black", weight=3]; 291.94/213.47 11559 -> 11246[label="",style="dashed", color="red", weight=0]; 291.94/213.47 11559[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11559 -> 11733[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11559 -> 11734[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11560[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="black",shape="triangle"];11560 -> 11735[label="",style="solid", color="black", weight=3]; 291.94/213.47 11561[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11561 -> 11736[label="",style="solid", color="black", weight=3]; 291.94/213.47 11562 -> 11560[label="",style="dashed", color="red", weight=0]; 291.94/213.47 11562[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="magenta"];12699[label="Succ wy40000",fontsize=16,color="green",shape="box"];10455[label="primMinusNatS wy5570000 Zero",fontsize=16,color="burlywood",shape="triangle"];17201[label="wy5570000/Succ wy55700000",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17201[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17201 -> 10485[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17202[label="wy5570000/Zero",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17202[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17202 -> 10486[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 6025[label="primDivNatS (Succ wy1600) (Succ wy1700)",fontsize=16,color="black",shape="box"];6025 -> 7057[label="",style="solid", color="black", weight=3]; 291.94/213.47 6026[label="primDivNatS Zero (Succ wy1700)",fontsize=16,color="black",shape="box"];6026 -> 7058[label="",style="solid", color="black", weight=3]; 291.94/213.47 12700 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12700[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12700 -> 13402[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12701[label="Zero",fontsize=16,color="green",shape="box"];12702[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Pos wy7730)) LT)",fontsize=16,color="black",shape="box"];12702 -> 13403[label="",style="solid", color="black", weight=3]; 291.94/213.47 12703[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Neg wy7730)) LT)",fontsize=16,color="black",shape="box"];12703 -> 13404[label="",style="solid", color="black", weight=3]; 291.94/213.47 12704[label="Succ wy40000",fontsize=16,color="green",shape="box"];12705 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12705[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12705 -> 13405[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12706[label="Zero",fontsize=16,color="green",shape="box"];12707 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12707[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12707 -> 13406[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12708[label="Zero",fontsize=16,color="green",shape="box"];12709[label="primPlusInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="box"];12709 -> 13407[label="",style="solid", color="black", weight=3]; 291.94/213.47 13389[label="Succ wy40000",fontsize=16,color="green",shape="box"];13390 -> 13641[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13390[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];13390 -> 13642[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13391[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];13391 -> 13643[label="",style="solid", color="black", weight=3]; 291.94/213.47 13392[label="Zero",fontsize=16,color="green",shape="box"];12710 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12710[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12710 -> 13408[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12711[label="Zero",fontsize=16,color="green",shape="box"];13393[label="Zero",fontsize=16,color="green",shape="box"];12712 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12712[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12712 -> 13409[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12713[label="Zero",fontsize=16,color="green",shape="box"];12714 -> 10455[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12714[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12714 -> 13410[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12715[label="Zero",fontsize=16,color="green",shape="box"];13394[label="Zero",fontsize=16,color="green",shape="box"];2529[label="truncateM0 (CnPc wy30 wy31) (properFractionRatio (CnPc wy30 wy31))",fontsize=16,color="black",shape="box"];2529 -> 2539[label="",style="solid", color="black", weight=3]; 291.94/213.47 16077 -> 7423[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16077[label="not MyTrue",fontsize=16,color="magenta"];7428[label="not MyFalse",fontsize=16,color="black",shape="triangle"];7428 -> 10566[label="",style="solid", color="black", weight=3]; 291.94/213.47 13652 -> 7428[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13652[label="not MyFalse",fontsize=16,color="magenta"];5496[label="fsEsOrdering (compareMyInt wy20 wy439) GT",fontsize=16,color="black",shape="box"];5496 -> 5551[label="",style="solid", color="black", weight=3]; 291.94/213.47 16078[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="black",shape="box"];16078 -> 16186[label="",style="solid", color="black", weight=3]; 291.94/213.47 16079[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];16079 -> 16187[label="",style="solid", color="black", weight=3]; 291.94/213.47 16185[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16185 -> 16196[label="",style="solid", color="black", weight=3]; 291.94/213.47 12494 -> 11563[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12494[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12494 -> 12593[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12494 -> 12594[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12495[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="black",shape="triangle"];12495 -> 12595[label="",style="solid", color="black", weight=3]; 291.94/213.47 12496[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];12496 -> 12596[label="",style="solid", color="black", weight=3]; 291.94/213.47 12497 -> 12495[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12497[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="magenta"];14946[label="Succ wy40000",fontsize=16,color="green",shape="box"];14947[label="Succ wy40000",fontsize=16,color="green",shape="box"];14948 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14948[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14948 -> 16090[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14948 -> 16091[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14949[label="Zero",fontsize=16,color="green",shape="box"];14950[label="primPlusInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="box"];14950 -> 16092[label="",style="solid", color="black", weight=3]; 291.94/213.47 14951 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14951[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14951 -> 16093[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14951 -> 16094[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14952[label="Zero",fontsize=16,color="green",shape="box"];14953[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Pos wy8020)) LT)",fontsize=16,color="black",shape="box"];14953 -> 16095[label="",style="solid", color="black", weight=3]; 291.94/213.47 14954[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Neg wy8020)) LT)",fontsize=16,color="black",shape="box"];14954 -> 16096[label="",style="solid", color="black", weight=3]; 291.94/213.47 16080[label="Zero",fontsize=16,color="green",shape="box"];16081[label="Succ wy40000",fontsize=16,color="green",shape="box"];13663[label="primMinusNatS wy725 wy726",fontsize=16,color="burlywood",shape="triangle"];17203[label="wy725/Succ wy7250",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17203[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17203 -> 14986[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17204[label="wy725/Zero",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17204[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17204 -> 14987[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14955 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14955[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14955 -> 16097[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14955 -> 16098[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14956[label="Zero",fontsize=16,color="green",shape="box"];16082 -> 16188[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16082[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16082 -> 16189[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16083[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16083 -> 16197[label="",style="solid", color="black", weight=3]; 291.94/213.47 16084[label="Zero",fontsize=16,color="green",shape="box"];16085[label="Zero",fontsize=16,color="green",shape="box"];16086[label="Zero",fontsize=16,color="green",shape="box"];16087[label="Zero",fontsize=16,color="green",shape="box"];14957 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14957[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14957 -> 16099[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14957 -> 16100[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14958[label="Zero",fontsize=16,color="green",shape="box"];14959 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14959[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14959 -> 16101[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14959 -> 16102[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14960[label="Zero",fontsize=16,color="green",shape="box"];16088[label="Zero",fontsize=16,color="green",shape="box"];16089[label="Zero",fontsize=16,color="green",shape="box"];14961 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14961[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14961 -> 16103[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14961 -> 16104[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14962[label="Zero",fontsize=16,color="green",shape="box"];16105[label="not (esEsOrdering (primCmpNat (Succ wy7740) wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17205[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17205[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17205 -> 16211[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17206[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17206[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17206 -> 16212[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16106[label="not (esEsOrdering (primCmpNat Zero wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17207[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17207[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17207 -> 16213[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17208[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17208[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17208 -> 16214[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16316[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="black",shape="box"];16316 -> 16349[label="",style="solid", color="black", weight=3]; 291.94/213.47 16317[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16317 -> 16350[label="",style="solid", color="black", weight=3]; 291.94/213.47 16348[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16348 -> 16366[label="",style="solid", color="black", weight=3]; 291.94/213.47 11733[label="wy7270",fontsize=16,color="green",shape="box"];11734[label="wy7280",fontsize=16,color="green",shape="box"];11735 -> 12619[label="",style="dashed", color="red", weight=0]; 291.94/213.47 11735[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy729 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy732)) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy736 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11735 -> 12652[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11735 -> 12653[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11735 -> 12654[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11735 -> 12655[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11735 -> 12656[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11735 -> 12657[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11736 -> 13676[label="",style="dashed", color="red", weight=0]; 291.94/213.47 11736[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 (not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 (not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)) wy738)",fontsize=16,color="magenta"];11736 -> 13765[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 11736 -> 13766[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 10485[label="primMinusNatS (Succ wy55700000) Zero",fontsize=16,color="black",shape="box"];10485 -> 10520[label="",style="solid", color="black", weight=3]; 291.94/213.47 10486[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];10486 -> 10521[label="",style="solid", color="black", weight=3]; 291.94/213.47 7057[label="primDivNatS0 wy1600 wy1700 (primGEqNatS wy1600 wy1700)",fontsize=16,color="burlywood",shape="box"];17209[label="wy1600/Succ wy16000",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17209[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17209 -> 7151[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17210[label="wy1600/Zero",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17210[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17210 -> 7152[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7058[label="Zero",fontsize=16,color="green",shape="box"];13402[label="Succ wy40000",fontsize=16,color="green",shape="box"];13403[label="not (esEsOrdering (primCmpNat (Succ wy774) wy7730) LT)",fontsize=16,color="burlywood",shape="box"];17211[label="wy7730/Succ wy77300",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17211[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17211 -> 13650[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17212[label="wy7730/Zero",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17212[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17212 -> 13651[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13405[label="Succ wy40000",fontsize=16,color="green",shape="box"];13406[label="Succ wy40000",fontsize=16,color="green",shape="box"];13407[label="primPlusInt (primMinusInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="burlywood",shape="box"];17213[label="wy777/Pos wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17213[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17213 -> 13653[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17214[label="wy777/Neg wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17214[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17214 -> 13654[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13642 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13642[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];13642 -> 13655[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13642 -> 13656[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13641[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy791",fontsize=16,color="burlywood",shape="triangle"];17215[label="wy791/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17215[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17215 -> 13657[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17216[label="wy791/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17216[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17216 -> 13658[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13643[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];13643 -> 14839[label="",style="solid", color="black", weight=3]; 291.94/213.47 13408[label="Zero",fontsize=16,color="green",shape="box"];13409[label="Zero",fontsize=16,color="green",shape="box"];13410[label="Zero",fontsize=16,color="green",shape="box"];2539[label="truncateM0 (CnPc wy30 wy31) (Tup2 (properFractionQ wy30 wy31) (CnPc (properFractionR wy30 wy31) wy31))",fontsize=16,color="black",shape="box"];2539 -> 2551[label="",style="solid", color="black", weight=3]; 291.94/213.47 7423[label="not MyTrue",fontsize=16,color="black",shape="triangle"];7423 -> 10562[label="",style="solid", color="black", weight=3]; 291.94/213.47 10566[label="MyTrue",fontsize=16,color="green",shape="box"];5551[label="not (esEsOrdering (compareMyInt wy20 wy439) GT)",fontsize=16,color="black",shape="box"];5551 -> 5799[label="",style="solid", color="black", weight=3]; 291.94/213.47 16186[label="takeWhile (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16186 -> 16198[label="",style="solid", color="black", weight=3]; 291.94/213.47 16187[label="Nil",fontsize=16,color="green",shape="box"];16196[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16196 -> 16243[label="",style="solid", color="black", weight=3]; 291.94/213.47 12593[label="wy7460",fontsize=16,color="green",shape="box"];12594[label="wy7450",fontsize=16,color="green",shape="box"];12595 -> 14842[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12595[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy747 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy750)) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy754 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12595 -> 14875[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12595 -> 14876[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12595 -> 14877[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12595 -> 14878[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12595 -> 14879[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12595 -> 14880[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12596 -> 16126[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12596[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 (not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 (not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)) wy756)",fontsize=16,color="magenta"];12596 -> 16160[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12596 -> 16161[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16090[label="Zero",fontsize=16,color="green",shape="box"];16091[label="Succ wy40000",fontsize=16,color="green",shape="box"];16092[label="primPlusInt (primMinusInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="burlywood",shape="box"];17217[label="wy798/Pos wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17217[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17217 -> 16199[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17218[label="wy798/Neg wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17218[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17218 -> 16200[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16093[label="Zero",fontsize=16,color="green",shape="box"];16094[label="Succ wy40000",fontsize=16,color="green",shape="box"];16095 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16095[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16096 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16096[label="not (esEsOrdering (primCmpNat wy8020 (Succ wy803)) LT)",fontsize=16,color="magenta"];16096 -> 16201[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16096 -> 16202[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14986[label="primMinusNatS (Succ wy7250) wy726",fontsize=16,color="burlywood",shape="box"];17219[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17219[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17219 -> 16203[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17220[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17220[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17220 -> 16204[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14987[label="primMinusNatS Zero wy726",fontsize=16,color="burlywood",shape="box"];17221[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17221[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17221 -> 16205[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17222[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17222[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17222 -> 16206[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16097[label="Zero",fontsize=16,color="green",shape="box"];16098[label="Succ wy40000",fontsize=16,color="green",shape="box"];16189 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16189[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16189 -> 16207[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16189 -> 16208[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16188[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy811",fontsize=16,color="burlywood",shape="triangle"];17223[label="wy811/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17223[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17223 -> 16209[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17224[label="wy811/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17224[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17224 -> 16210[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16197[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16197 -> 16244[label="",style="solid", color="black", weight=3]; 291.94/213.47 16099[label="Zero",fontsize=16,color="green",shape="box"];16100[label="Zero",fontsize=16,color="green",shape="box"];16101[label="Zero",fontsize=16,color="green",shape="box"];16102[label="Zero",fontsize=16,color="green",shape="box"];16103[label="Zero",fontsize=16,color="green",shape="box"];16104[label="Zero",fontsize=16,color="green",shape="box"];16211[label="not (esEsOrdering (primCmpNat (Succ wy7740) (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16211 -> 16254[label="",style="solid", color="black", weight=3]; 291.94/213.47 16212[label="not (esEsOrdering (primCmpNat (Succ wy7740) Zero) LT)",fontsize=16,color="black",shape="box"];16212 -> 16255[label="",style="solid", color="black", weight=3]; 291.94/213.47 16213[label="not (esEsOrdering (primCmpNat Zero (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16213 -> 16256[label="",style="solid", color="black", weight=3]; 291.94/213.47 16214[label="not (esEsOrdering (primCmpNat Zero Zero) LT)",fontsize=16,color="black",shape="box"];16214 -> 16257[label="",style="solid", color="black", weight=3]; 291.94/213.47 16349[label="takeWhile (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16349 -> 16367[label="",style="solid", color="black", weight=3]; 291.94/213.47 16350[label="Nil",fontsize=16,color="green",shape="box"];16366[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16366 -> 16446[label="",style="solid", color="black", weight=3]; 291.94/213.47 12652 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12652[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12652 -> 13413[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12652 -> 13414[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12653 -> 12661[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12653[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT)",fontsize=16,color="magenta"];12653 -> 12670[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12653 -> 12671[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12654 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12654[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12654 -> 13415[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12654 -> 13416[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12655 -> 12661[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12655[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)",fontsize=16,color="magenta"];12655 -> 12672[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12655 -> 12673[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12656 -> 12676[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12656[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734",fontsize=16,color="magenta"];12656 -> 12683[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12656 -> 12684[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12656 -> 12685[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12657 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12657[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12657 -> 13417[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12657 -> 13418[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13765 -> 14825[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13765[label="not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT)",fontsize=16,color="magenta"];13765 -> 14830[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13766 -> 14825[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13766[label="not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)",fontsize=16,color="magenta"];13766 -> 14831[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 10520[label="Succ wy55700000",fontsize=16,color="green",shape="box"];10521[label="Zero",fontsize=16,color="green",shape="box"];7151[label="primDivNatS0 (Succ wy16000) wy1700 (primGEqNatS (Succ wy16000) wy1700)",fontsize=16,color="burlywood",shape="box"];17225[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17225[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17225 -> 7184[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17226[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17226[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17226 -> 7185[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7152[label="primDivNatS0 Zero wy1700 (primGEqNatS Zero wy1700)",fontsize=16,color="burlywood",shape="box"];17227[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17227[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17227 -> 7186[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17228[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17228[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17228 -> 7187[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13650[label="not (esEsOrdering (primCmpNat (Succ wy774) (Succ wy77300)) LT)",fontsize=16,color="black",shape="box"];13650 -> 14963[label="",style="solid", color="black", weight=3]; 291.94/213.47 13651[label="not (esEsOrdering (primCmpNat (Succ wy774) Zero) LT)",fontsize=16,color="black",shape="box"];13651 -> 14964[label="",style="solid", color="black", weight=3]; 291.94/213.47 13653[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Pos wy7770)) wy776",fontsize=16,color="black",shape="box"];13653 -> 14965[label="",style="solid", color="black", weight=3]; 291.94/213.47 13654[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Neg wy7770)) wy776",fontsize=16,color="black",shape="box"];13654 -> 14966[label="",style="solid", color="black", weight=3]; 291.94/213.47 13655[label="wy738",fontsize=16,color="green",shape="box"];13656[label="wy735",fontsize=16,color="green",shape="box"];13657[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];13657 -> 14967[label="",style="solid", color="black", weight=3]; 291.94/213.47 13658[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];13658 -> 14968[label="",style="solid", color="black", weight=3]; 291.94/213.47 14839[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="triangle"];14839 -> 14969[label="",style="solid", color="black", weight=3]; 291.94/213.47 2551[label="properFractionQ wy30 wy31",fontsize=16,color="black",shape="box"];2551 -> 2559[label="",style="solid", color="black", weight=3]; 291.94/213.47 10562[label="MyFalse",fontsize=16,color="green",shape="box"];5799[label="not (esEsOrdering (primCmpInt wy20 wy439) GT)",fontsize=16,color="burlywood",shape="box"];17229[label="wy20/Pos wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17229[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17229 -> 6034[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17230[label="wy20/Neg wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17230[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17230 -> 6035[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16198[label="takeWhile2 (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16198 -> 16245[label="",style="solid", color="black", weight=3]; 291.94/213.47 16243[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17231[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17231[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17231 -> 16272[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17232[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17232[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17232 -> 16273[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14875 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14875[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14875 -> 14970[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14875 -> 14971[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14876 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14876[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14876 -> 14972[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14876 -> 14973[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14877 -> 14894[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14877[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752",fontsize=16,color="magenta"];14877 -> 14901[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14877 -> 14902[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14877 -> 14903[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14878 -> 14915[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14878[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)",fontsize=16,color="magenta"];14878 -> 14924[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14878 -> 14925[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14879 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14879[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14879 -> 14974[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14879 -> 14975[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14880 -> 14915[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14880[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT)",fontsize=16,color="magenta"];14880 -> 14926[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14880 -> 14927[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16160 -> 16170[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16160[label="not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT)",fontsize=16,color="magenta"];16160 -> 16175[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16161 -> 16170[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16161[label="not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)",fontsize=16,color="magenta"];16161 -> 16176[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16199[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Pos wy7980)) wy797",fontsize=16,color="black",shape="box"];16199 -> 16246[label="",style="solid", color="black", weight=3]; 291.94/213.47 16200[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Neg wy7980)) wy797",fontsize=16,color="black",shape="box"];16200 -> 16247[label="",style="solid", color="black", weight=3]; 291.94/213.47 16201[label="Succ wy803",fontsize=16,color="green",shape="box"];16202[label="wy8020",fontsize=16,color="green",shape="box"];16203[label="primMinusNatS (Succ wy7250) (Succ wy7260)",fontsize=16,color="black",shape="box"];16203 -> 16248[label="",style="solid", color="black", weight=3]; 291.94/213.47 16204[label="primMinusNatS (Succ wy7250) Zero",fontsize=16,color="black",shape="box"];16204 -> 16249[label="",style="solid", color="black", weight=3]; 291.94/213.47 16205[label="primMinusNatS Zero (Succ wy7260)",fontsize=16,color="black",shape="box"];16205 -> 16250[label="",style="solid", color="black", weight=3]; 291.94/213.47 16206[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];16206 -> 16251[label="",style="solid", color="black", weight=3]; 291.94/213.47 16207[label="wy756",fontsize=16,color="green",shape="box"];16208[label="wy753",fontsize=16,color="green",shape="box"];16209[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16209 -> 16252[label="",style="solid", color="black", weight=3]; 291.94/213.47 16210[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16210 -> 16253[label="",style="solid", color="black", weight=3]; 291.94/213.47 16244[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="triangle"];16244 -> 16274[label="",style="solid", color="black", weight=3]; 291.94/213.47 16254 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16254[label="not (esEsOrdering (primCmpNat wy7740 wy773000) LT)",fontsize=16,color="magenta"];16254 -> 16289[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16254 -> 16290[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16255 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16255[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16256 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16256[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16257 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16257[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16367[label="takeWhile2 (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16367 -> 16447[label="",style="solid", color="black", weight=3]; 291.94/213.47 16446[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17233[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17233[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17233 -> 16453[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17234[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17234[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17234 -> 16454[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13413[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="black",shape="triangle"];13413 -> 13663[label="",style="solid", color="black", weight=3]; 291.94/213.47 13414[label="Succ wy726",fontsize=16,color="green",shape="box"];12670[label="wy730",fontsize=16,color="green",shape="box"];12671 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12671[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12671 -> 13429[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12671 -> 13430[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13415 -> 13413[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13415[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13416[label="Succ wy726",fontsize=16,color="green",shape="box"];12672[label="wy737",fontsize=16,color="green",shape="box"];12673 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12673[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12673 -> 13431[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12673 -> 13432[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12683[label="wy734",fontsize=16,color="green",shape="box"];12684[label="wy733",fontsize=16,color="green",shape="box"];12685 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 12685[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12685 -> 13433[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 12685 -> 13434[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 13417 -> 13413[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13417[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13418[label="Succ wy726",fontsize=16,color="green",shape="box"];14830[label="wy730",fontsize=16,color="green",shape="box"];14831[label="wy737",fontsize=16,color="green",shape="box"];7184[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS (Succ wy16000) (Succ wy17000))",fontsize=16,color="black",shape="box"];7184 -> 7244[label="",style="solid", color="black", weight=3]; 291.94/213.47 7185[label="primDivNatS0 (Succ wy16000) Zero (primGEqNatS (Succ wy16000) Zero)",fontsize=16,color="black",shape="box"];7185 -> 7245[label="",style="solid", color="black", weight=3]; 291.94/213.47 7186[label="primDivNatS0 Zero (Succ wy17000) (primGEqNatS Zero (Succ wy17000))",fontsize=16,color="black",shape="box"];7186 -> 7246[label="",style="solid", color="black", weight=3]; 291.94/213.47 7187[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];7187 -> 7247[label="",style="solid", color="black", weight=3]; 291.94/213.47 14964 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14964[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14965[label="primPlusInt (primMinusNat (Succ wy778) wy7770) wy776",fontsize=16,color="burlywood",shape="box"];17235[label="wy7770/Succ wy77700",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17235[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17235 -> 16107[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17236[label="wy7770/Zero",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17236[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17236 -> 16108[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14966 -> 16562[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14966[label="primPlusInt (Pos (primPlusNat (Succ wy778) wy7770)) wy776",fontsize=16,color="magenta"];14966 -> 16563[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14966 -> 16564[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14967[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];14967 -> 16111[label="",style="dashed", color="green", weight=3]; 291.94/213.47 14968[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];14968 -> 16112[label="",style="solid", color="black", weight=3]; 291.94/213.47 14969[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];14969 -> 16113[label="",style="solid", color="black", weight=3]; 291.94/213.47 2559[label="properFractionQ1 wy30 wy31 (properFractionVu30 wy30 wy31)",fontsize=16,color="black",shape="box"];2559 -> 2567[label="",style="solid", color="black", weight=3]; 291.94/213.47 6034[label="not (esEsOrdering (primCmpInt (Pos wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17237[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17237[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17237 -> 7263[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17238[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17238[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17238 -> 7264[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 6035[label="not (esEsOrdering (primCmpInt (Neg wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17239[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17239[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17239 -> 7265[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17240[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17240[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17240 -> 7266[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16245 -> 14904[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16245[label="takeWhile1 (flip ltEsMyInt wy735) (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))) (flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="magenta"];16245 -> 16275[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16245 -> 16276[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16245 -> 16277[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16245 -> 16278[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16272[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17241[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17241[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17241 -> 16318[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17242[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17242[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17242 -> 16319[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16273[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17243[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17243[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17243 -> 16320[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17244[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17244[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17244 -> 16321[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14970 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14970[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14970 -> 16114[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14970 -> 16115[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14971[label="Succ wy744",fontsize=16,color="green",shape="box"];14972 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14972[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14972 -> 16116[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14972 -> 16117[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14973[label="Succ wy744",fontsize=16,color="green",shape="box"];14901 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14901[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14901 -> 14976[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14901 -> 14977[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14902[label="wy752",fontsize=16,color="green",shape="box"];14903[label="wy751",fontsize=16,color="green",shape="box"];14924[label="wy755",fontsize=16,color="green",shape="box"];14925 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14925[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14925 -> 14978[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14925 -> 14979[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14974 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14974[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14974 -> 16118[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14974 -> 16119[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14975[label="Succ wy744",fontsize=16,color="green",shape="box"];14926[label="wy748",fontsize=16,color="green",shape="box"];14927 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14927[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14927 -> 14980[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14927 -> 14981[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16175[label="wy748",fontsize=16,color="green",shape="box"];16176[label="wy755",fontsize=16,color="green",shape="box"];16246 -> 16736[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16246[label="primPlusInt (Neg (primPlusNat (Succ wy799) wy7980)) wy797",fontsize=16,color="magenta"];16246 -> 16737[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16246 -> 16738[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16247 -> 16215[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16247[label="primPlusInt (primMinusNat wy7980 (Succ wy799)) wy797",fontsize=16,color="magenta"];16247 -> 16281[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16247 -> 16282[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16247 -> 16283[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16248 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16248[label="primMinusNatS wy7250 wy7260",fontsize=16,color="magenta"];16248 -> 16284[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16248 -> 16285[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16249[label="Succ wy7250",fontsize=16,color="green",shape="box"];16250[label="Zero",fontsize=16,color="green",shape="box"];16251[label="Zero",fontsize=16,color="green",shape="box"];16252[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16252 -> 16286[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16253[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16253 -> 16287[label="",style="solid", color="black", weight=3]; 291.94/213.47 16274[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16274 -> 16322[label="",style="solid", color="black", weight=3]; 291.94/213.47 16289[label="wy773000",fontsize=16,color="green",shape="box"];16290[label="wy7740",fontsize=16,color="green",shape="box"];16447 -> 16232[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16447[label="takeWhile1 (flip ltEsMyInt wy753) (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))) (flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="magenta"];16447 -> 16455[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16447 -> 16456[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16447 -> 16457[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16447 -> 16458[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16453[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17245[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17245[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17245 -> 16464[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17246[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17246[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17246 -> 16465[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16454[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17247[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17247[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17247 -> 16466[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17248[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17248[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17248 -> 16467[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13429 -> 13413[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13429[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13430[label="Succ wy726",fontsize=16,color="green",shape="box"];13431 -> 13413[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13431[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13432[label="Succ wy726",fontsize=16,color="green",shape="box"];13433 -> 13413[label="",style="dashed", color="red", weight=0]; 291.94/213.47 13433[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13434[label="Succ wy726",fontsize=16,color="green",shape="box"];7244 -> 17027[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7244[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS wy16000 wy17000)",fontsize=16,color="magenta"];7244 -> 17028[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7244 -> 17029[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7244 -> 17030[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7244 -> 17031[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7245[label="primDivNatS0 (Succ wy16000) Zero MyTrue",fontsize=16,color="black",shape="box"];7245 -> 7305[label="",style="solid", color="black", weight=3]; 291.94/213.47 7246[label="primDivNatS0 Zero (Succ wy17000) MyFalse",fontsize=16,color="black",shape="box"];7246 -> 7306[label="",style="solid", color="black", weight=3]; 291.94/213.47 7247[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];7247 -> 7307[label="",style="solid", color="black", weight=3]; 291.94/213.47 16107[label="primPlusInt (primMinusNat (Succ wy778) (Succ wy77700)) wy776",fontsize=16,color="black",shape="box"];16107 -> 16215[label="",style="solid", color="black", weight=3]; 291.94/213.47 16108[label="primPlusInt (primMinusNat (Succ wy778) Zero) wy776",fontsize=16,color="black",shape="box"];16108 -> 16216[label="",style="solid", color="black", weight=3]; 291.94/213.47 16563[label="wy776",fontsize=16,color="green",shape="box"];16564 -> 16336[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16564[label="primPlusNat (Succ wy778) wy7770",fontsize=16,color="magenta"];16564 -> 16572[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16562[label="primPlusInt (Pos wy824) wy734",fontsize=16,color="burlywood",shape="triangle"];17249[label="wy734/Pos wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17249[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17249 -> 16573[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17250[label="wy734/Neg wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17250[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17250 -> 16574[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16111[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16111 -> 16219[label="",style="solid", color="black", weight=3]; 291.94/213.47 16112[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16112 -> 16220[label="",style="solid", color="black", weight=3]; 291.94/213.47 16113[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16113 -> 16221[label="",style="solid", color="black", weight=3]; 291.94/213.47 2567 -> 1994[label="",style="dashed", color="red", weight=0]; 291.94/213.47 2567[label="properFractionQ1 wy30 wy31 (quotRemMyInt wy30 wy31)",fontsize=16,color="magenta"];2567 -> 3560[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 2567 -> 3561[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7263[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17251[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17251[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17251 -> 7318[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17252[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17252[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17252 -> 7319[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7264[label="not (esEsOrdering (primCmpInt (Pos Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17253[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17253[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17253 -> 7320[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17254[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17254[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17254 -> 7321[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7265[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17255[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17255[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17255 -> 7322[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17256[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17256[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17256 -> 7323[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7266[label="not (esEsOrdering (primCmpInt (Neg Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17257[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17257[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17257 -> 7324[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17258[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17258[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17258 -> 7325[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16275[label="wy732",fontsize=16,color="green",shape="box"];16276 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16276[label="flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734)",fontsize=16,color="magenta"];16276 -> 16323[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16276 -> 16324[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16277[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="triangle"];16277 -> 16325[label="",style="solid", color="black", weight=3]; 291.94/213.47 16278 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16278[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16318[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17259[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17259[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17259 -> 16351[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17260[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17260[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17260 -> 16352[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16319[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17261[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17261[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17261 -> 16353[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17262[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17262[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17262 -> 16354[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16320[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17263[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17263[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17263 -> 16355[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17264[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17264[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17264 -> 16356[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16321[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17265[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17265[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17265 -> 16357[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17266[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17266[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17266 -> 16358[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16114[label="Succ wy744",fontsize=16,color="green",shape="box"];16115[label="Succ wy743",fontsize=16,color="green",shape="box"];16116[label="Succ wy744",fontsize=16,color="green",shape="box"];16117[label="Succ wy743",fontsize=16,color="green",shape="box"];14976 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14976[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14976 -> 16120[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14976 -> 16121[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14977[label="Succ wy744",fontsize=16,color="green",shape="box"];14978 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14978[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14978 -> 16122[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14978 -> 16123[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14979[label="Succ wy744",fontsize=16,color="green",shape="box"];16118[label="Succ wy744",fontsize=16,color="green",shape="box"];16119[label="Succ wy743",fontsize=16,color="green",shape="box"];14980 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 14980[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14980 -> 16124[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14980 -> 16125[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 14981[label="Succ wy744",fontsize=16,color="green",shape="box"];16737 -> 16513[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16737[label="primPlusNat (Succ wy799) wy7980",fontsize=16,color="magenta"];16737 -> 16742[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16737 -> 16743[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16738[label="wy797",fontsize=16,color="green",shape="box"];16736[label="primPlusInt (Neg wy833) wy752",fontsize=16,color="burlywood",shape="triangle"];17267[label="wy752/Pos wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17267[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17267 -> 16744[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17268[label="wy752/Neg wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17268[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17268 -> 16745[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16281[label="wy797",fontsize=16,color="green",shape="box"];16282[label="Succ wy799",fontsize=16,color="green",shape="box"];16283[label="wy7980",fontsize=16,color="green",shape="box"];16215[label="primPlusInt (primMinusNat wy778 wy77700) wy776",fontsize=16,color="burlywood",shape="triangle"];17269[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17269[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17269 -> 16258[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17270[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17270[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17270 -> 16259[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16284[label="wy7260",fontsize=16,color="green",shape="box"];16285[label="wy7250",fontsize=16,color="green",shape="box"];16286[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16286 -> 16328[label="",style="solid", color="black", weight=3]; 291.94/213.47 16287[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16287 -> 16329[label="",style="solid", color="black", weight=3]; 291.94/213.47 16322[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16322 -> 16359[label="",style="solid", color="black", weight=3]; 291.94/213.47 16455 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16455[label="flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752)",fontsize=16,color="magenta"];16455 -> 16468[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16455 -> 16469[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16456[label="wy750",fontsize=16,color="green",shape="box"];16457[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="triangle"];16457 -> 16470[label="",style="solid", color="black", weight=3]; 291.94/213.47 16458 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16458[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16464[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17271[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17271[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17271 -> 16522[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17272[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17272[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17272 -> 16523[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16465[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17273[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17273[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17273 -> 16524[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17274[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17274[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17274 -> 16525[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16466[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17275[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17275[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17275 -> 16526[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17276[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17276[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17276 -> 16527[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16467[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17277[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17277[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17277 -> 16528[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17278[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17278[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17278 -> 16529[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17028[label="wy16000",fontsize=16,color="green",shape="box"];17029[label="wy16000",fontsize=16,color="green",shape="box"];17030[label="wy17000",fontsize=16,color="green",shape="box"];17031[label="wy17000",fontsize=16,color="green",shape="box"];17027[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy852 wy853)",fontsize=16,color="burlywood",shape="triangle"];17279[label="wy852/Succ wy8520",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17279[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17279 -> 17068[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17280[label="wy852/Zero",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17280[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17280 -> 17069[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7305[label="Succ (primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7305 -> 7338[label="",style="dashed", color="green", weight=3]; 291.94/213.47 7306[label="Zero",fontsize=16,color="green",shape="box"];7307[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7307 -> 7339[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16216 -> 16562[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16216[label="primPlusInt (Pos (Succ wy778)) wy776",fontsize=16,color="magenta"];16216 -> 16565[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16216 -> 16566[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16572[label="wy7770",fontsize=16,color="green",shape="box"];16336[label="primPlusNat (Succ wy778) wy7760",fontsize=16,color="burlywood",shape="triangle"];17281[label="wy7760/Succ wy77600",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17281[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17281 -> 16405[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17282[label="wy7760/Zero",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17282[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17282 -> 16406[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16573[label="primPlusInt (Pos wy824) (Pos wy7340)",fontsize=16,color="black",shape="box"];16573 -> 16640[label="",style="solid", color="black", weight=3]; 291.94/213.47 16574[label="primPlusInt (Pos wy824) (Neg wy7340)",fontsize=16,color="black",shape="box"];16574 -> 16641[label="",style="solid", color="black", weight=3]; 291.94/213.47 16219 -> 16265[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16219[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16219 -> 16266[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16220[label="Nil",fontsize=16,color="green",shape="box"];16221[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16221 -> 16288[label="",style="solid", color="black", weight=3]; 291.94/213.47 3560[label="wy30",fontsize=16,color="green",shape="box"];3561[label="wy31",fontsize=16,color="green",shape="box"];1994[label="properFractionQ1 wy16 wy17 (quotRemMyInt wy16 wy17)",fontsize=16,color="black",shape="triangle"];1994 -> 2088[label="",style="solid", color="black", weight=3]; 291.94/213.47 7318[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7318 -> 7350[label="",style="solid", color="black", weight=3]; 291.94/213.47 7319[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7319 -> 7351[label="",style="solid", color="black", weight=3]; 291.94/213.47 7320[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17283[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17283[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17283 -> 7352[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17284[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17284[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17284 -> 7353[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7321[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17285[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17285[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17285 -> 7354[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17286[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17286[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17286 -> 7355[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7322[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7322 -> 7356[label="",style="solid", color="black", weight=3]; 291.94/213.47 7323[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7323 -> 7357[label="",style="solid", color="black", weight=3]; 291.94/213.47 7324[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17287[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17287[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17287 -> 7358[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17288[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17288[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17288 -> 7359[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7325[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17289[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17289[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17289 -> 7360[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17290[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17290[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17290 -> 7361[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16323 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16323[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16324[label="wy735",fontsize=16,color="green",shape="box"];16325[label="primPlusInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="box"];16325 -> 16360[label="",style="solid", color="black", weight=3]; 291.94/213.47 16351[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16351 -> 16368[label="",style="solid", color="black", weight=3]; 291.94/213.47 16352[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16352 -> 16369[label="",style="solid", color="black", weight=3]; 291.94/213.47 16353[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17291[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17291[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17291 -> 16370[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17292[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17292[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17292 -> 16371[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16354[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17293[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17293[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17293 -> 16372[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17294[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17294[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17294 -> 16373[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16355[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16355 -> 16374[label="",style="solid", color="black", weight=3]; 291.94/213.47 16356[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16356 -> 16375[label="",style="solid", color="black", weight=3]; 291.94/213.47 16357[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17295[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17295[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17295 -> 16376[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17296[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17296[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17296 -> 16377[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16358[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17297[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17297[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17297 -> 16378[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17298[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17298[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17298 -> 16379[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16120[label="Succ wy744",fontsize=16,color="green",shape="box"];16121[label="Succ wy743",fontsize=16,color="green",shape="box"];16122[label="Succ wy744",fontsize=16,color="green",shape="box"];16123[label="Succ wy743",fontsize=16,color="green",shape="box"];16124[label="Succ wy744",fontsize=16,color="green",shape="box"];16125[label="Succ wy743",fontsize=16,color="green",shape="box"];16742[label="wy7980",fontsize=16,color="green",shape="box"];16743[label="Succ wy799",fontsize=16,color="green",shape="box"];16513[label="primPlusNat wy778 wy77700",fontsize=16,color="burlywood",shape="triangle"];17299[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17299[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17299 -> 16630[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17300[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17300[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17300 -> 16631[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16744[label="primPlusInt (Neg wy833) (Pos wy7520)",fontsize=16,color="black",shape="box"];16744 -> 16768[label="",style="solid", color="black", weight=3]; 291.94/213.47 16745[label="primPlusInt (Neg wy833) (Neg wy7520)",fontsize=16,color="black",shape="box"];16745 -> 16769[label="",style="solid", color="black", weight=3]; 291.94/213.47 16258[label="primPlusInt (primMinusNat (Succ wy7780) wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17301[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17301[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17301 -> 16291[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17302[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17302[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17302 -> 16292[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16259[label="primPlusInt (primMinusNat Zero wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17303[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17303[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17303 -> 16293[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17304[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17304[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17304 -> 16294[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16328 -> 16364[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16328[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16328 -> 16365[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16329[label="Nil",fontsize=16,color="green",shape="box"];16359[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16359 -> 16380[label="",style="solid", color="black", weight=3]; 291.94/213.47 16468 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16468[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16469[label="wy753",fontsize=16,color="green",shape="box"];16470[label="primPlusInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="box"];16470 -> 16530[label="",style="solid", color="black", weight=3]; 291.94/213.47 16522[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16522 -> 16575[label="",style="solid", color="black", weight=3]; 291.94/213.47 16523[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16523 -> 16576[label="",style="solid", color="black", weight=3]; 291.94/213.47 16524[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17305[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17305[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17305 -> 16577[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17306[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17306[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17306 -> 16578[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16525[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17307[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17307[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17307 -> 16579[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17308[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17308[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17308 -> 16580[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16526[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16526 -> 16581[label="",style="solid", color="black", weight=3]; 291.94/213.47 16527[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16527 -> 16582[label="",style="solid", color="black", weight=3]; 291.94/213.47 16528[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17309[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17309[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17309 -> 16583[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17310[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17310[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17310 -> 16584[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16529[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17311[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17311[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17311 -> 16585[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17312[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17312[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17312 -> 16586[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17068[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) wy853)",fontsize=16,color="burlywood",shape="box"];17313[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17313[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17313 -> 17078[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17314[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17314[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17314 -> 17079[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17069[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero wy853)",fontsize=16,color="burlywood",shape="box"];17315[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17315[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17315 -> 17080[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17316[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17316[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17316 -> 17081[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7338 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7338[label="primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero)",fontsize=16,color="magenta"];7338 -> 7410[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7338 -> 7411[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7339 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7339[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];7339 -> 7412[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7339 -> 7413[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16565[label="wy776",fontsize=16,color="green",shape="box"];16566[label="Succ wy778",fontsize=16,color="green",shape="box"];16405[label="primPlusNat (Succ wy778) (Succ wy77600)",fontsize=16,color="black",shape="box"];16405 -> 16509[label="",style="solid", color="black", weight=3]; 291.94/213.47 16406[label="primPlusNat (Succ wy778) Zero",fontsize=16,color="black",shape="box"];16406 -> 16510[label="",style="solid", color="black", weight=3]; 291.94/213.47 16640[label="Pos (primPlusNat wy824 wy7340)",fontsize=16,color="green",shape="box"];16640 -> 16647[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16641[label="primMinusNat wy824 wy7340",fontsize=16,color="burlywood",shape="triangle"];17317[label="wy824/Succ wy8240",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17317[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17317 -> 16648[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17318[label="wy824/Zero",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17318[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17318 -> 16649[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16266 -> 12676[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16266[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16266 -> 16301[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16266 -> 16302[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16266 -> 16303[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16265[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="triangle"];16265 -> 16304[label="",style="solid", color="black", weight=3]; 291.94/213.47 16288[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17319[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17319[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17319 -> 16330[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17320[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17320[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17320 -> 16331[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 2088[label="properFractionQ1 wy16 wy17 (primQrmInt wy16 wy17)",fontsize=16,color="black",shape="box"];2088 -> 2189[label="",style="solid", color="black", weight=3]; 291.94/213.47 7350[label="not (esEsOrdering (primCmpNat (Succ wy2000) wy4390) GT)",fontsize=16,color="burlywood",shape="triangle"];17321[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17321[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17321 -> 7421[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17322[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17322[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17322 -> 7422[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7351[label="not (esEsOrdering GT GT)",fontsize=16,color="black",shape="triangle"];7351 -> 7423[label="",style="solid", color="black", weight=3]; 291.94/213.47 7352[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7352 -> 7424[label="",style="solid", color="black", weight=3]; 291.94/213.47 7353[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7353 -> 7425[label="",style="solid", color="black", weight=3]; 291.94/213.47 7354[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7354 -> 7426[label="",style="solid", color="black", weight=3]; 291.94/213.47 7355[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7355 -> 7427[label="",style="solid", color="black", weight=3]; 291.94/213.47 7356[label="not (esEsOrdering LT GT)",fontsize=16,color="black",shape="triangle"];7356 -> 7428[label="",style="solid", color="black", weight=3]; 291.94/213.47 7357[label="not (esEsOrdering (primCmpNat wy4390 (Succ wy2000)) GT)",fontsize=16,color="burlywood",shape="triangle"];17323[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17323[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17323 -> 7429[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17324[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17324[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17324 -> 7430[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 7358[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7358 -> 7431[label="",style="solid", color="black", weight=3]; 291.94/213.47 7359[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7359 -> 7432[label="",style="solid", color="black", weight=3]; 291.94/213.47 7360[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7360 -> 7433[label="",style="solid", color="black", weight=3]; 291.94/213.47 7361[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7361 -> 7434[label="",style="solid", color="black", weight=3]; 291.94/213.47 16360[label="primPlusInt (primMinusInt (Pos Zero) wy733) wy734",fontsize=16,color="burlywood",shape="box"];17325[label="wy733/Pos wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17325[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17325 -> 16381[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17326[label="wy733/Neg wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17326[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17326 -> 16382[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16368 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16368[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16368 -> 16449[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16368 -> 16450[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16369 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16369[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16369 -> 16460[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16369 -> 16461[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16370[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16370 -> 16471[label="",style="solid", color="black", weight=3]; 291.94/213.47 16371[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16371 -> 16472[label="",style="solid", color="black", weight=3]; 291.94/213.47 16372[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16372 -> 16473[label="",style="solid", color="black", weight=3]; 291.94/213.47 16373[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16373 -> 16474[label="",style="solid", color="black", weight=3]; 291.94/213.47 16374 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16374[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16374 -> 16451[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16374 -> 16452[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16375 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16375[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16375 -> 16462[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16375 -> 16463[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16376[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16376 -> 16475[label="",style="solid", color="black", weight=3]; 291.94/213.47 16377[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16377 -> 16476[label="",style="solid", color="black", weight=3]; 291.94/213.47 16378[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16378 -> 16477[label="",style="solid", color="black", weight=3]; 291.94/213.47 16379[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16379 -> 16478[label="",style="solid", color="black", weight=3]; 291.94/213.47 16630[label="primPlusNat (Succ wy7780) wy77700",fontsize=16,color="burlywood",shape="box"];17327[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17327[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17327 -> 16757[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17328[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17328[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17328 -> 16758[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16631[label="primPlusNat Zero wy77700",fontsize=16,color="burlywood",shape="box"];17329[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17329[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17329 -> 16759[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17330[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17330[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17330 -> 16760[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16768 -> 16641[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16768[label="primMinusNat wy7520 wy833",fontsize=16,color="magenta"];16768 -> 16795[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16768 -> 16796[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16769[label="Neg (primPlusNat wy833 wy7520)",fontsize=16,color="green",shape="box"];16769 -> 16797[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16291[label="primPlusInt (primMinusNat (Succ wy7780) (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16291 -> 16332[label="",style="solid", color="black", weight=3]; 291.94/213.47 16292[label="primPlusInt (primMinusNat (Succ wy7780) Zero) wy776",fontsize=16,color="black",shape="box"];16292 -> 16333[label="",style="solid", color="black", weight=3]; 291.94/213.47 16293[label="primPlusInt (primMinusNat Zero (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16293 -> 16334[label="",style="solid", color="black", weight=3]; 291.94/213.47 16294[label="primPlusInt (primMinusNat Zero Zero) wy776",fontsize=16,color="black",shape="box"];16294 -> 16335[label="",style="solid", color="black", weight=3]; 291.94/213.47 16365 -> 14894[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16365[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16365 -> 16390[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16365 -> 16391[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16365 -> 16392[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16364[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="triangle"];16364 -> 16393[label="",style="solid", color="black", weight=3]; 291.94/213.47 16380[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17331[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17331[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17331 -> 16479[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17332[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17332[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17332 -> 16480[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16530[label="primPlusInt (primMinusInt (Neg Zero) wy751) wy752",fontsize=16,color="burlywood",shape="box"];17333[label="wy751/Pos wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17333[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17333 -> 16587[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17334[label="wy751/Neg wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17334[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17334 -> 16588[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16575 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16575[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16575 -> 16643[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16575 -> 16644[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16576 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16576[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16576 -> 16651[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16576 -> 16652[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16577[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16577 -> 16655[label="",style="solid", color="black", weight=3]; 291.94/213.47 16578[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16578 -> 16656[label="",style="solid", color="black", weight=3]; 291.94/213.47 16579[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16579 -> 16657[label="",style="solid", color="black", weight=3]; 291.94/213.47 16580[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16580 -> 16658[label="",style="solid", color="black", weight=3]; 291.94/213.47 16581 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16581[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16581 -> 16645[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16581 -> 16646[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16582 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16582[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16582 -> 16653[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16582 -> 16654[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16583[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16583 -> 16659[label="",style="solid", color="black", weight=3]; 291.94/213.47 16584[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16584 -> 16660[label="",style="solid", color="black", weight=3]; 291.94/213.47 16585[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16585 -> 16661[label="",style="solid", color="black", weight=3]; 291.94/213.47 16586[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16586 -> 16662[label="",style="solid", color="black", weight=3]; 291.94/213.47 17078[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) (Succ wy8530))",fontsize=16,color="black",shape="box"];17078 -> 17094[label="",style="solid", color="black", weight=3]; 291.94/213.47 17079[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) Zero)",fontsize=16,color="black",shape="box"];17079 -> 17095[label="",style="solid", color="black", weight=3]; 291.94/213.47 17080[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero (Succ wy8530))",fontsize=16,color="black",shape="box"];17080 -> 17096[label="",style="solid", color="black", weight=3]; 291.94/213.47 17081[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];17081 -> 17097[label="",style="solid", color="black", weight=3]; 291.94/213.47 7410 -> 6811[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7410[label="primMinusNatS (Succ wy16000) Zero",fontsize=16,color="magenta"];7410 -> 7712[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7411[label="Zero",fontsize=16,color="green",shape="box"];7412 -> 6851[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7412[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];7413[label="Zero",fontsize=16,color="green",shape="box"];16509[label="Succ (Succ (primPlusNat wy778 wy77600))",fontsize=16,color="green",shape="box"];16509 -> 16632[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16510[label="Succ wy778",fontsize=16,color="green",shape="box"];16647 -> 16513[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16647[label="primPlusNat wy824 wy7340",fontsize=16,color="magenta"];16647 -> 16663[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16647 -> 16664[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16648[label="primMinusNat (Succ wy8240) wy7340",fontsize=16,color="burlywood",shape="box"];17335[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17335[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17335 -> 16665[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17336[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17336[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17336 -> 16666[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16649[label="primMinusNat Zero wy7340",fontsize=16,color="burlywood",shape="box"];17337[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17337[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17337 -> 16667[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17338[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17338[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17338 -> 16668[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16301[label="wy758",fontsize=16,color="green",shape="box"];16302[label="wy732",fontsize=16,color="green",shape="box"];16303[label="wy762",fontsize=16,color="green",shape="box"];16304[label="takeWhile2 (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="box"];16304 -> 16342[label="",style="solid", color="black", weight=3]; 291.94/213.47 16330[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17339[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17339[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17339 -> 16394[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17340[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17340[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17340 -> 16395[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16331[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17341[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17341[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17341 -> 16396[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17342[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17342[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17342 -> 16397[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 2189[label="properFractionQ1 wy16 wy17 (Tup2 (primQuotInt wy16 wy17) (primRemInt wy16 wy17))",fontsize=16,color="black",shape="box"];2189 -> 2519[label="",style="solid", color="black", weight=3]; 291.94/213.47 7421[label="not (esEsOrdering (primCmpNat (Succ wy2000) (Succ wy43900)) GT)",fontsize=16,color="black",shape="box"];7421 -> 10560[label="",style="solid", color="black", weight=3]; 291.94/213.47 7422[label="not (esEsOrdering (primCmpNat (Succ wy2000) Zero) GT)",fontsize=16,color="black",shape="box"];7422 -> 10561[label="",style="solid", color="black", weight=3]; 291.94/213.47 7424 -> 7357[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7424[label="not (esEsOrdering (primCmpNat Zero (Succ wy43900)) GT)",fontsize=16,color="magenta"];7424 -> 10563[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7424 -> 10564[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7425[label="not (esEsOrdering EQ GT)",fontsize=16,color="black",shape="triangle"];7425 -> 10565[label="",style="solid", color="black", weight=3]; 291.94/213.47 7426 -> 7351[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7426[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];7427 -> 7425[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7427[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7429[label="not (esEsOrdering (primCmpNat (Succ wy43900) (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7429 -> 10567[label="",style="solid", color="black", weight=3]; 291.94/213.47 7430[label="not (esEsOrdering (primCmpNat Zero (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7430 -> 10568[label="",style="solid", color="black", weight=3]; 291.94/213.47 7431 -> 7356[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7431[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];7432 -> 7425[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7432[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7433 -> 7350[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7433[label="not (esEsOrdering (primCmpNat (Succ wy43900) Zero) GT)",fontsize=16,color="magenta"];7433 -> 10569[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7433 -> 10570[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 7434 -> 7425[label="",style="dashed", color="red", weight=0]; 291.94/213.47 7434[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16381[label="primPlusInt (primMinusInt (Pos Zero) (Pos wy7330)) wy734",fontsize=16,color="black",shape="box"];16381 -> 16481[label="",style="solid", color="black", weight=3]; 291.94/213.47 16382[label="primPlusInt (primMinusInt (Pos Zero) (Neg wy7330)) wy734",fontsize=16,color="black",shape="box"];16382 -> 16482[label="",style="solid", color="black", weight=3]; 291.94/213.47 16449 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16449[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16449 -> 16483[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16449 -> 16484[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16450 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16450[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16448[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) wy820",fontsize=16,color="burlywood",shape="triangle"];17343[label="wy820/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17343[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17343 -> 16485[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17344[label="wy820/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17344[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17344 -> 16486[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16460 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16460[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16461 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16461[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16459[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) wy822",fontsize=16,color="burlywood",shape="triangle"];17345[label="wy822/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17345[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17345 -> 16487[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17346[label="wy822/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17346[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17346 -> 16488[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16471 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16471[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16471 -> 16531[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16471 -> 16532[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16471 -> 16533[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16472 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16472[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16472 -> 16534[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16472 -> 16535[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16472 -> 16536[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16473 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16473[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16473 -> 16537[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16473 -> 16538[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16473 -> 16539[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16474 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16474[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16474 -> 16540[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16474 -> 16541[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16474 -> 16542[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16451 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16451[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16452 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16452[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16462 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16462[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16462 -> 16489[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16462 -> 16490[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16463 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16463[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16475 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16475[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16475 -> 16543[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16475 -> 16544[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16475 -> 16545[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16476 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16476[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16476 -> 16546[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16476 -> 16547[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16476 -> 16548[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16477 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16477[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16477 -> 16549[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16477 -> 16550[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16477 -> 16551[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16478 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16478[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16478 -> 16552[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16478 -> 16553[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16478 -> 16554[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16757[label="primPlusNat (Succ wy7780) (Succ wy777000)",fontsize=16,color="black",shape="box"];16757 -> 16770[label="",style="solid", color="black", weight=3]; 291.94/213.47 16758[label="primPlusNat (Succ wy7780) Zero",fontsize=16,color="black",shape="box"];16758 -> 16771[label="",style="solid", color="black", weight=3]; 291.94/213.47 16759[label="primPlusNat Zero (Succ wy777000)",fontsize=16,color="black",shape="box"];16759 -> 16772[label="",style="solid", color="black", weight=3]; 291.94/213.47 16760[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16760 -> 16773[label="",style="solid", color="black", weight=3]; 291.94/213.47 16795[label="wy833",fontsize=16,color="green",shape="box"];16796[label="wy7520",fontsize=16,color="green",shape="box"];16797 -> 16513[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16797[label="primPlusNat wy833 wy7520",fontsize=16,color="magenta"];16797 -> 16802[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16797 -> 16803[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16332 -> 16215[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16332[label="primPlusInt (primMinusNat wy7780 wy777000) wy776",fontsize=16,color="magenta"];16332 -> 16398[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16332 -> 16399[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16333 -> 16562[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16333[label="primPlusInt (Pos (Succ wy7780)) wy776",fontsize=16,color="magenta"];16333 -> 16567[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16333 -> 16568[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16334 -> 16736[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16334[label="primPlusInt (Neg (Succ wy777000)) wy776",fontsize=16,color="magenta"];16334 -> 16739[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16334 -> 16740[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16335 -> 16562[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16335[label="primPlusInt (Pos Zero) wy776",fontsize=16,color="magenta"];16335 -> 16569[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16335 -> 16570[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16390[label="wy784",fontsize=16,color="green",shape="box"];16391[label="wy780",fontsize=16,color="green",shape="box"];16392[label="wy750",fontsize=16,color="green",shape="box"];16393[label="takeWhile2 (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="box"];16393 -> 16495[label="",style="solid", color="black", weight=3]; 291.94/213.47 16479[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17347[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17347[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17347 -> 16555[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17348[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17348[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17348 -> 16556[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16480[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17349[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17349[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17349 -> 16557[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17350[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17350[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17350 -> 16558[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16587[label="primPlusInt (primMinusInt (Neg Zero) (Pos wy7510)) wy752",fontsize=16,color="black",shape="box"];16587 -> 16669[label="",style="solid", color="black", weight=3]; 291.94/213.47 16588[label="primPlusInt (primMinusInt (Neg Zero) (Neg wy7510)) wy752",fontsize=16,color="black",shape="box"];16588 -> 16670[label="",style="solid", color="black", weight=3]; 291.94/213.47 16643 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16643[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16643 -> 16671[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16643 -> 16672[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16644 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16644[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16642[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) wy828",fontsize=16,color="burlywood",shape="triangle"];17351[label="wy828/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17351[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17351 -> 16673[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17352[label="wy828/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17352[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17352 -> 16674[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16651 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16651[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16652 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16652[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16650[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) wy830",fontsize=16,color="burlywood",shape="triangle"];17353[label="wy830/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17353[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17353 -> 16675[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17354[label="wy830/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17354[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17354 -> 16676[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16655 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16655[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16655 -> 16708[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16655 -> 16709[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16655 -> 16710[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16656 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16656[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16656 -> 16711[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16656 -> 16712[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16656 -> 16713[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16657 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16657[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16657 -> 16714[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16657 -> 16715[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16657 -> 16716[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16658 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16658[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16658 -> 16717[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16658 -> 16718[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16658 -> 16719[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16645 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16645[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16646 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16646[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16653 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16653[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16653 -> 16677[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16653 -> 16678[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16654 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16654[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16659 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16659[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16659 -> 16720[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16659 -> 16721[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16659 -> 16722[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16660 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16660[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16660 -> 16723[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16660 -> 16724[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16660 -> 16725[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16661 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16661[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16661 -> 16726[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16661 -> 16727[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16661 -> 16728[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16662 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16662[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16662 -> 16729[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16662 -> 16730[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16662 -> 16731[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17094 -> 17027[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17094[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy8520 wy8530)",fontsize=16,color="magenta"];17094 -> 17110[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17094 -> 17111[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17095[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="black",shape="triangle"];17095 -> 17112[label="",style="solid", color="black", weight=3]; 291.94/213.47 17096[label="primDivNatS0 (Succ wy850) (Succ wy851) MyFalse",fontsize=16,color="black",shape="box"];17096 -> 17113[label="",style="solid", color="black", weight=3]; 291.94/213.47 17097 -> 17095[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17097[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="magenta"];7712[label="wy16000",fontsize=16,color="green",shape="box"];6811[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="black",shape="triangle"];6811 -> 7063[label="",style="solid", color="black", weight=3]; 291.94/213.47 6851[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];6851 -> 7092[label="",style="solid", color="black", weight=3]; 291.94/213.47 16632 -> 16513[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16632[label="primPlusNat wy778 wy77600",fontsize=16,color="magenta"];16632 -> 16679[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16663[label="wy7340",fontsize=16,color="green",shape="box"];16664[label="wy824",fontsize=16,color="green",shape="box"];16665[label="primMinusNat (Succ wy8240) (Succ wy73400)",fontsize=16,color="black",shape="box"];16665 -> 16732[label="",style="solid", color="black", weight=3]; 291.94/213.47 16666[label="primMinusNat (Succ wy8240) Zero",fontsize=16,color="black",shape="box"];16666 -> 16733[label="",style="solid", color="black", weight=3]; 291.94/213.47 16667[label="primMinusNat Zero (Succ wy73400)",fontsize=16,color="black",shape="box"];16667 -> 16734[label="",style="solid", color="black", weight=3]; 291.94/213.47 16668[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];16668 -> 16735[label="",style="solid", color="black", weight=3]; 291.94/213.47 16342 -> 13641[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16342[label="takeWhile1 (flip ltEsMyInt wy735) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813) (flip ltEsMyInt wy735 wy758)",fontsize=16,color="magenta"];16342 -> 16411[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16342 -> 16412[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16342 -> 16413[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16394[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17355[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17355[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17355 -> 16497[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17356[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17356[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17356 -> 16498[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16395[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17357[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17357[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17357 -> 16499[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17358[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17358[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17358 -> 16500[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16396[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17359[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17359[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17359 -> 16501[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17360[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17360[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17360 -> 16502[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16397[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17361[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17361[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17361 -> 16503[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17362[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17362[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17362 -> 16504[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 2519[label="primQuotInt wy16 wy17",fontsize=16,color="burlywood",shape="box"];17363[label="wy16/Pos wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17363[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17363 -> 3636[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17364[label="wy16/Neg wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17364[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17364 -> 3637[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 10560[label="not (esEsOrdering (primCmpNat wy2000 wy43900) GT)",fontsize=16,color="burlywood",shape="triangle"];17365[label="wy2000/Succ wy20000",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17365[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17365 -> 13627[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17366[label="wy2000/Zero",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17366[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17366 -> 13628[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 10561 -> 7351[label="",style="dashed", color="red", weight=0]; 291.94/213.47 10561[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];10563[label="wy43900",fontsize=16,color="green",shape="box"];10564[label="Zero",fontsize=16,color="green",shape="box"];10565 -> 7428[label="",style="dashed", color="red", weight=0]; 291.94/213.47 10565[label="not MyFalse",fontsize=16,color="magenta"];10567 -> 10560[label="",style="dashed", color="red", weight=0]; 291.94/213.47 10567[label="not (esEsOrdering (primCmpNat wy43900 wy2000) GT)",fontsize=16,color="magenta"];10567 -> 13629[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 10567 -> 13630[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 10568 -> 7356[label="",style="dashed", color="red", weight=0]; 291.94/213.47 10568[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];10569[label="Zero",fontsize=16,color="green",shape="box"];10570[label="wy43900",fontsize=16,color="green",shape="box"];16481 -> 16215[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16481[label="primPlusInt (primMinusNat Zero wy7330) wy734",fontsize=16,color="magenta"];16481 -> 16559[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16481 -> 16560[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16481 -> 16561[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16482 -> 16562[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16482[label="primPlusInt (Pos (primPlusNat Zero wy7330)) wy734",fontsize=16,color="magenta"];16482 -> 16571[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16483[label="wy7350",fontsize=16,color="green",shape="box"];16484[label="Succ wy73800",fontsize=16,color="green",shape="box"];16485[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16485 -> 16589[label="",style="solid", color="black", weight=3]; 291.94/213.47 16486[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyFalse",fontsize=16,color="black",shape="box"];16486 -> 16590[label="",style="solid", color="black", weight=3]; 291.94/213.47 16487[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16487 -> 16591[label="",style="solid", color="black", weight=3]; 291.94/213.47 16488[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyFalse",fontsize=16,color="black",shape="box"];16488 -> 16592[label="",style="solid", color="black", weight=3]; 291.94/213.47 16531[label="Succ wy73500",fontsize=16,color="green",shape="box"];16532 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16532[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16532 -> 16593[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16532 -> 16594[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16533 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16533[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16534[label="Zero",fontsize=16,color="green",shape="box"];16535 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16535[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16536 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16536[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16537[label="Succ wy73500",fontsize=16,color="green",shape="box"];16538 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16538[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16539 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16539[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16540[label="Zero",fontsize=16,color="green",shape="box"];16541 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16541[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16542 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16542[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16489[label="Succ wy73800",fontsize=16,color="green",shape="box"];16490[label="wy7350",fontsize=16,color="green",shape="box"];16543[label="Succ wy73500",fontsize=16,color="green",shape="box"];16544 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16544[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16545 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16545[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16546[label="Zero",fontsize=16,color="green",shape="box"];16547 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16547[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16548 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16548[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16549[label="Succ wy73500",fontsize=16,color="green",shape="box"];16550 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16550[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16550 -> 16595[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16550 -> 16596[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16551 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16551[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16552[label="Zero",fontsize=16,color="green",shape="box"];16553 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16553[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16554 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16554[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16770[label="Succ (Succ (primPlusNat wy7780 wy777000))",fontsize=16,color="green",shape="box"];16770 -> 16798[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16771[label="Succ wy7780",fontsize=16,color="green",shape="box"];16772[label="Succ wy777000",fontsize=16,color="green",shape="box"];16773[label="Zero",fontsize=16,color="green",shape="box"];16802[label="wy7520",fontsize=16,color="green",shape="box"];16803[label="wy833",fontsize=16,color="green",shape="box"];16398[label="wy777000",fontsize=16,color="green",shape="box"];16399[label="wy7780",fontsize=16,color="green",shape="box"];16567[label="wy776",fontsize=16,color="green",shape="box"];16568[label="Succ wy7780",fontsize=16,color="green",shape="box"];16739[label="Succ wy777000",fontsize=16,color="green",shape="box"];16740[label="wy776",fontsize=16,color="green",shape="box"];16569[label="wy776",fontsize=16,color="green",shape="box"];16570[label="Zero",fontsize=16,color="green",shape="box"];16495 -> 16188[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16495[label="takeWhile1 (flip ltEsMyInt wy753) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816) (flip ltEsMyInt wy753 wy780)",fontsize=16,color="magenta"];16495 -> 16601[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16495 -> 16602[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16495 -> 16603[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16555[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17367[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17367[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17367 -> 16604[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17368[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17368[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17368 -> 16605[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16556[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17369[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17369[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17369 -> 16606[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17370[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17370[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17370 -> 16607[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16557[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17371[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17371[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17371 -> 16608[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17372[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17372[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17372 -> 16609[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16558[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17373[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17373[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17373 -> 16610[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17374[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17374[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17374 -> 16611[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16669 -> 16736[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16669[label="primPlusInt (Neg (primPlusNat Zero wy7510)) wy752",fontsize=16,color="magenta"];16669 -> 16741[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16670 -> 16215[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16670[label="primPlusInt (primMinusNat wy7510 Zero) wy752",fontsize=16,color="magenta"];16670 -> 16746[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16670 -> 16747[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16670 -> 16748[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16671[label="wy7530",fontsize=16,color="green",shape="box"];16672[label="Succ wy75600",fontsize=16,color="green",shape="box"];16673[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16673 -> 16749[label="",style="solid", color="black", weight=3]; 291.94/213.47 16674[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyFalse",fontsize=16,color="black",shape="box"];16674 -> 16750[label="",style="solid", color="black", weight=3]; 291.94/213.47 16675[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16675 -> 16751[label="",style="solid", color="black", weight=3]; 291.94/213.47 16676[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyFalse",fontsize=16,color="black",shape="box"];16676 -> 16752[label="",style="solid", color="black", weight=3]; 291.94/213.47 16708 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16708[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16708 -> 16753[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16708 -> 16754[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16709[label="Succ wy75300",fontsize=16,color="green",shape="box"];16710 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16710[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16711 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16711[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16712[label="Zero",fontsize=16,color="green",shape="box"];16713 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16713[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16714 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16714[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16715 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16715[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16716[label="Succ wy75300",fontsize=16,color="green",shape="box"];16717 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16717[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16718 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16718[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16719[label="Zero",fontsize=16,color="green",shape="box"];16677[label="Succ wy75600",fontsize=16,color="green",shape="box"];16678[label="wy7530",fontsize=16,color="green",shape="box"];16720 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16720[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16721[label="Succ wy75300",fontsize=16,color="green",shape="box"];16722 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16722[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16723 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16723[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16724[label="Zero",fontsize=16,color="green",shape="box"];16725 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16725[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16726 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16726[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16726 -> 16755[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16726 -> 16756[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16727 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16727[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16728[label="Succ wy75300",fontsize=16,color="green",shape="box"];16729 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16729[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16730 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16730[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16731[label="Zero",fontsize=16,color="green",shape="box"];17110[label="wy8520",fontsize=16,color="green",shape="box"];17111[label="wy8530",fontsize=16,color="green",shape="box"];17112[label="Succ (primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851)))",fontsize=16,color="green",shape="box"];17112 -> 17118[label="",style="dashed", color="green", weight=3]; 291.94/213.47 17113[label="Zero",fontsize=16,color="green",shape="box"];7063[label="Succ wy40000",fontsize=16,color="green",shape="box"];7092[label="Zero",fontsize=16,color="green",shape="box"];16679[label="wy77600",fontsize=16,color="green",shape="box"];16732 -> 16641[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16732[label="primMinusNat wy8240 wy73400",fontsize=16,color="magenta"];16732 -> 16761[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16732 -> 16762[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16733[label="Pos (Succ wy8240)",fontsize=16,color="green",shape="box"];16734[label="Neg (Succ wy73400)",fontsize=16,color="green",shape="box"];16735[label="Pos Zero",fontsize=16,color="green",shape="box"];16411[label="wy813",fontsize=16,color="green",shape="box"];16412[label="wy758",fontsize=16,color="green",shape="box"];16413 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16413[label="flip ltEsMyInt wy735 wy758",fontsize=16,color="magenta"];16413 -> 16516[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16413 -> 16517[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16497[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16497 -> 16613[label="",style="solid", color="black", weight=3]; 291.94/213.47 16498[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16498 -> 16614[label="",style="solid", color="black", weight=3]; 291.94/213.47 16499[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17375[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17375[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17375 -> 16615[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17376[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17376[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17376 -> 16616[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16500[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17377[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17377[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17377 -> 16617[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17378[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17378[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17378 -> 16618[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16501[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16501 -> 16619[label="",style="solid", color="black", weight=3]; 291.94/213.47 16502[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16502 -> 16620[label="",style="solid", color="black", weight=3]; 291.94/213.47 16503[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17379[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17379[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17379 -> 16621[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17380[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17380[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17380 -> 16622[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16504[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17381[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17381[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17381 -> 16623[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17382[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17382[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17382 -> 16624[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 3636[label="primQuotInt (Pos wy160) wy17",fontsize=16,color="burlywood",shape="box"];17383[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17383[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17383 -> 4336[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17384[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17384[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17384 -> 4337[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 3637[label="primQuotInt (Neg wy160) wy17",fontsize=16,color="burlywood",shape="box"];17385[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17385[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17385 -> 4338[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17386[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17386[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17386 -> 4339[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13627[label="not (esEsOrdering (primCmpNat (Succ wy20000) wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17387[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17387[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17387 -> 14988[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17388[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17388[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17388 -> 14989[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13628[label="not (esEsOrdering (primCmpNat Zero wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17389[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17389[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17389 -> 14990[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17390[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17390[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17390 -> 14991[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 13629[label="wy43900",fontsize=16,color="green",shape="box"];13630[label="wy2000",fontsize=16,color="green",shape="box"];16559[label="wy734",fontsize=16,color="green",shape="box"];16560[label="wy7330",fontsize=16,color="green",shape="box"];16561[label="Zero",fontsize=16,color="green",shape="box"];16571[label="primPlusNat Zero wy7330",fontsize=16,color="burlywood",shape="box"];17391[label="wy7330/Succ wy73300",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17391[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17391 -> 16625[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17392[label="wy7330/Zero",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17392[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17392 -> 16626[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16589[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821))",fontsize=16,color="green",shape="box"];16589 -> 16680[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16590[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) otherwise",fontsize=16,color="black",shape="box"];16590 -> 16681[label="",style="solid", color="black", weight=3]; 291.94/213.47 16591[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823))",fontsize=16,color="green",shape="box"];16591 -> 16682[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16592[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) otherwise",fontsize=16,color="black",shape="box"];16592 -> 16683[label="",style="solid", color="black", weight=3]; 291.94/213.47 16593[label="Succ wy73500",fontsize=16,color="green",shape="box"];16594[label="Zero",fontsize=16,color="green",shape="box"];16595[label="Zero",fontsize=16,color="green",shape="box"];16596[label="Succ wy73500",fontsize=16,color="green",shape="box"];16798 -> 16513[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16798[label="primPlusNat wy7780 wy777000",fontsize=16,color="magenta"];16798 -> 16804[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16798 -> 16805[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16601[label="wy816",fontsize=16,color="green",shape="box"];16602 -> 5275[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16602[label="flip ltEsMyInt wy753 wy780",fontsize=16,color="magenta"];16602 -> 16689[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16602 -> 16690[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16603[label="wy780",fontsize=16,color="green",shape="box"];16604[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16604 -> 16691[label="",style="solid", color="black", weight=3]; 291.94/213.47 16605[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16605 -> 16692[label="",style="solid", color="black", weight=3]; 291.94/213.47 16606[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17393[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17393[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17393 -> 16693[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17394[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17394[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17394 -> 16694[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16607[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17395[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17395[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17395 -> 16695[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17396[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17396[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17396 -> 16696[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16608[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16608 -> 16697[label="",style="solid", color="black", weight=3]; 291.94/213.47 16609[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16609 -> 16698[label="",style="solid", color="black", weight=3]; 291.94/213.47 16610[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17397[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17397[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17397 -> 16699[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17398[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17398[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17398 -> 16700[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16611[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17399[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17399[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17399 -> 16701[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17400[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17400[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17400 -> 16702[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16741 -> 16513[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16741[label="primPlusNat Zero wy7510",fontsize=16,color="magenta"];16741 -> 16763[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16741 -> 16764[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16746[label="wy752",fontsize=16,color="green",shape="box"];16747[label="Zero",fontsize=16,color="green",shape="box"];16748[label="wy7510",fontsize=16,color="green",shape="box"];16749[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829))",fontsize=16,color="green",shape="box"];16749 -> 16774[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16750[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) otherwise",fontsize=16,color="black",shape="box"];16750 -> 16775[label="",style="solid", color="black", weight=3]; 291.94/213.47 16751[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831))",fontsize=16,color="green",shape="box"];16751 -> 16776[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16752[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) otherwise",fontsize=16,color="black",shape="box"];16752 -> 16777[label="",style="solid", color="black", weight=3]; 291.94/213.47 16753[label="Succ wy75300",fontsize=16,color="green",shape="box"];16754[label="Zero",fontsize=16,color="green",shape="box"];16755[label="Zero",fontsize=16,color="green",shape="box"];16756[label="Succ wy75300",fontsize=16,color="green",shape="box"];17118 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17118[label="primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851))",fontsize=16,color="magenta"];17118 -> 17119[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17118 -> 17120[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16761[label="wy73400",fontsize=16,color="green",shape="box"];16762[label="wy8240",fontsize=16,color="green",shape="box"];16516[label="wy758",fontsize=16,color="green",shape="box"];16517[label="wy735",fontsize=16,color="green",shape="box"];16613 -> 16705[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16613[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16613 -> 16706[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16614 -> 16765[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16614[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16614 -> 16766[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16615[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16615 -> 16778[label="",style="solid", color="black", weight=3]; 291.94/213.47 16616[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16616 -> 16779[label="",style="solid", color="black", weight=3]; 291.94/213.47 16617[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16617 -> 16780[label="",style="solid", color="black", weight=3]; 291.94/213.47 16618[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16618 -> 16781[label="",style="solid", color="black", weight=3]; 291.94/213.47 16619 -> 16705[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16619[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16619 -> 16707[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16620 -> 16765[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16620[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16620 -> 16767[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16621[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16621 -> 16782[label="",style="solid", color="black", weight=3]; 291.94/213.47 16622[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16622 -> 16783[label="",style="solid", color="black", weight=3]; 291.94/213.47 16623[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16623 -> 16784[label="",style="solid", color="black", weight=3]; 291.94/213.47 16624[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16624 -> 16785[label="",style="solid", color="black", weight=3]; 291.94/213.47 4336[label="primQuotInt (Pos wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17401[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17401[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17401 -> 4806[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17402[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17402[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17402 -> 4807[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 4337[label="primQuotInt (Pos wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17403[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17403[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17403 -> 4808[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17404[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17404[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17404 -> 4809[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 4338[label="primQuotInt (Neg wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17405[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17405[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17405 -> 4810[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17406[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17406[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17406 -> 4811[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 4339[label="primQuotInt (Neg wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17407[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17407[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17407 -> 4812[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17408[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17408[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17408 -> 4813[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 14988[label="not (esEsOrdering (primCmpNat (Succ wy20000) (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14988 -> 16222[label="",style="solid", color="black", weight=3]; 291.94/213.47 14989[label="not (esEsOrdering (primCmpNat (Succ wy20000) Zero) GT)",fontsize=16,color="black",shape="box"];14989 -> 16223[label="",style="solid", color="black", weight=3]; 291.94/213.47 14990[label="not (esEsOrdering (primCmpNat Zero (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14990 -> 16224[label="",style="solid", color="black", weight=3]; 291.94/213.47 14991[label="not (esEsOrdering (primCmpNat Zero Zero) GT)",fontsize=16,color="black",shape="box"];14991 -> 16225[label="",style="solid", color="black", weight=3]; 291.94/213.47 16625[label="primPlusNat Zero (Succ wy73300)",fontsize=16,color="black",shape="box"];16625 -> 16786[label="",style="solid", color="black", weight=3]; 291.94/213.47 16626[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16626 -> 16787[label="",style="solid", color="black", weight=3]; 291.94/213.47 16680[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821)",fontsize=16,color="black",shape="box"];16680 -> 16788[label="",style="solid", color="black", weight=3]; 291.94/213.47 16681[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16681 -> 16789[label="",style="solid", color="black", weight=3]; 291.94/213.47 16682[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823)",fontsize=16,color="black",shape="box"];16682 -> 16790[label="",style="solid", color="black", weight=3]; 291.94/213.47 16683[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16683 -> 16791[label="",style="solid", color="black", weight=3]; 291.94/213.47 16804[label="wy777000",fontsize=16,color="green",shape="box"];16805[label="wy7780",fontsize=16,color="green",shape="box"];16689[label="wy780",fontsize=16,color="green",shape="box"];16690[label="wy753",fontsize=16,color="green",shape="box"];16691 -> 16792[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16691[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16691 -> 16793[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16692 -> 16799[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16692[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16692 -> 16800[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16693[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16693 -> 16806[label="",style="solid", color="black", weight=3]; 291.94/213.47 16694[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16694 -> 16807[label="",style="solid", color="black", weight=3]; 291.94/213.47 16695[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16695 -> 16808[label="",style="solid", color="black", weight=3]; 291.94/213.47 16696[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16696 -> 16809[label="",style="solid", color="black", weight=3]; 291.94/213.47 16697 -> 16792[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16697[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16697 -> 16794[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16698 -> 16799[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16698[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16698 -> 16801[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16699[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16699 -> 16810[label="",style="solid", color="black", weight=3]; 291.94/213.47 16700[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16700 -> 16811[label="",style="solid", color="black", weight=3]; 291.94/213.47 16701[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16701 -> 16812[label="",style="solid", color="black", weight=3]; 291.94/213.47 16702[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16702 -> 16813[label="",style="solid", color="black", weight=3]; 291.94/213.47 16763[label="wy7510",fontsize=16,color="green",shape="box"];16764[label="Zero",fontsize=16,color="green",shape="box"];16774[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829)",fontsize=16,color="black",shape="box"];16774 -> 16814[label="",style="solid", color="black", weight=3]; 291.94/213.47 16775[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16775 -> 16815[label="",style="solid", color="black", weight=3]; 291.94/213.47 16776[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831)",fontsize=16,color="black",shape="box"];16776 -> 16816[label="",style="solid", color="black", weight=3]; 291.94/213.47 16777[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16777 -> 16817[label="",style="solid", color="black", weight=3]; 291.94/213.47 17119 -> 13663[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17119[label="primMinusNatS (Succ wy850) (Succ wy851)",fontsize=16,color="magenta"];17119 -> 17121[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17119 -> 17122[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17120[label="Succ wy851",fontsize=16,color="green",shape="box"];16706 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16706[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16706 -> 16820[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16706 -> 16821[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16705[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy832",fontsize=16,color="burlywood",shape="triangle"];17409[label="wy832/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17409[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17409 -> 16822[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17410[label="wy832/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17410[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17410 -> 16823[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16766 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16766[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16765[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy834",fontsize=16,color="burlywood",shape="triangle"];17411[label="wy834/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17411[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17411 -> 16824[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17412[label="wy834/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17412[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17412 -> 16825[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16778 -> 16705[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16778[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16778 -> 16826[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16778 -> 16827[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16779 -> 16705[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16779[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16779 -> 16828[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16779 -> 16829[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16780 -> 16765[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16780[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16780 -> 16830[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16780 -> 16831[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16781 -> 16765[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16781[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16781 -> 16832[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16781 -> 16833[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16707 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16707[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16767 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16767[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16767 -> 16834[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16767 -> 16835[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16782 -> 16705[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16782[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16782 -> 16836[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16782 -> 16837[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16783 -> 16705[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16783[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16783 -> 16838[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16783 -> 16839[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16784 -> 16765[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16784[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16784 -> 16840[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16784 -> 16841[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16785 -> 16765[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16785[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16785 -> 16842[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16785 -> 16843[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 4806[label="primQuotInt (Pos wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4806 -> 5031[label="",style="solid", color="black", weight=3]; 291.94/213.47 4807[label="primQuotInt (Pos wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4807 -> 5032[label="",style="solid", color="black", weight=3]; 291.94/213.47 4808[label="primQuotInt (Pos wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4808 -> 5033[label="",style="solid", color="black", weight=3]; 291.94/213.47 4809[label="primQuotInt (Pos wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4809 -> 5034[label="",style="solid", color="black", weight=3]; 291.94/213.47 4810[label="primQuotInt (Neg wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4810 -> 5035[label="",style="solid", color="black", weight=3]; 291.94/213.47 4811[label="primQuotInt (Neg wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4811 -> 5036[label="",style="solid", color="black", weight=3]; 291.94/213.47 4812[label="primQuotInt (Neg wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4812 -> 5037[label="",style="solid", color="black", weight=3]; 291.94/213.47 4813[label="primQuotInt (Neg wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4813 -> 5038[label="",style="solid", color="black", weight=3]; 291.94/213.47 16222 -> 10560[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16222[label="not (esEsOrdering (primCmpNat wy20000 wy439000) GT)",fontsize=16,color="magenta"];16222 -> 16305[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16222 -> 16306[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16223 -> 7351[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16223[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];16224 -> 7356[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16224[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];16225 -> 7425[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16225[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16786[label="Succ wy73300",fontsize=16,color="green",shape="box"];16787[label="Zero",fontsize=16,color="green",shape="box"];16788 -> 16844[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16788[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy821)))",fontsize=16,color="magenta"];16788 -> 16845[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16789[label="Nil",fontsize=16,color="green",shape="box"];16790 -> 16846[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16790[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy823)))",fontsize=16,color="magenta"];16790 -> 16847[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16791[label="Nil",fontsize=16,color="green",shape="box"];16793 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16793[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16793 -> 16848[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16793 -> 16849[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16792[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy835",fontsize=16,color="burlywood",shape="triangle"];17413[label="wy835/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17413[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17413 -> 16850[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17414[label="wy835/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17414[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17414 -> 16851[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16800 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16800[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16799[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy836",fontsize=16,color="burlywood",shape="triangle"];17415[label="wy836/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17415[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17415 -> 16852[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17416[label="wy836/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17416[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17416 -> 16853[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 16806 -> 16792[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16806[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16806 -> 16854[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16806 -> 16855[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16807 -> 16792[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16807[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16807 -> 16856[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16807 -> 16857[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16808 -> 16799[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16808[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16808 -> 16858[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16808 -> 16859[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16809 -> 16799[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16809[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16809 -> 16860[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16809 -> 16861[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16794 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16794[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16801 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16801[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16801 -> 16862[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16801 -> 16863[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16810 -> 16792[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16810[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16810 -> 16864[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16810 -> 16865[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16811 -> 16792[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16811[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16811 -> 16866[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16811 -> 16867[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16812 -> 16799[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16812[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16812 -> 16868[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16812 -> 16869[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16813 -> 16799[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16813[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16813 -> 16870[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16813 -> 16871[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16814 -> 16872[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16814[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy829)))",fontsize=16,color="magenta"];16814 -> 16873[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16815[label="Nil",fontsize=16,color="green",shape="box"];16816 -> 16874[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16816[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy831)))",fontsize=16,color="magenta"];16816 -> 16875[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16817[label="Nil",fontsize=16,color="green",shape="box"];17121[label="Succ wy851",fontsize=16,color="green",shape="box"];17122[label="Succ wy850",fontsize=16,color="green",shape="box"];16820[label="wy7350",fontsize=16,color="green",shape="box"];16821[label="Succ wy73800",fontsize=16,color="green",shape="box"];16822[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16822 -> 16876[label="",style="solid", color="black", weight=3]; 291.94/213.47 16823[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16823 -> 16877[label="",style="solid", color="black", weight=3]; 291.94/213.47 16824[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16824 -> 16878[label="",style="solid", color="black", weight=3]; 291.94/213.47 16825[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16825 -> 16879[label="",style="solid", color="black", weight=3]; 291.94/213.47 16826[label="Succ wy73500",fontsize=16,color="green",shape="box"];16827 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16827[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16827 -> 16880[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16827 -> 16881[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16828[label="Zero",fontsize=16,color="green",shape="box"];16829 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16829[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16830[label="Succ wy73500",fontsize=16,color="green",shape="box"];16831 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16831[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16832[label="Zero",fontsize=16,color="green",shape="box"];16833 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16833[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16834[label="Succ wy73800",fontsize=16,color="green",shape="box"];16835[label="wy7350",fontsize=16,color="green",shape="box"];16836[label="Succ wy73500",fontsize=16,color="green",shape="box"];16837 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16837[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16838[label="Zero",fontsize=16,color="green",shape="box"];16839 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16839[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16840[label="Succ wy73500",fontsize=16,color="green",shape="box"];16841 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16841[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16841 -> 16882[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16841 -> 16883[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16842[label="Zero",fontsize=16,color="green",shape="box"];16843 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16843[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];5031[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5031 -> 5128[label="",style="dashed", color="green", weight=3]; 291.94/213.47 5032[label="error",fontsize=16,color="black",shape="triangle"];5032 -> 5129[label="",style="solid", color="black", weight=3]; 291.94/213.47 5033[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5033 -> 5130[label="",style="dashed", color="green", weight=3]; 291.94/213.47 5034 -> 5032[label="",style="dashed", color="red", weight=0]; 291.94/213.47 5034[label="error",fontsize=16,color="magenta"];5035[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5035 -> 5131[label="",style="dashed", color="green", weight=3]; 291.94/213.47 5036 -> 5032[label="",style="dashed", color="red", weight=0]; 291.94/213.47 5036[label="error",fontsize=16,color="magenta"];5037[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5037 -> 5132[label="",style="dashed", color="green", weight=3]; 291.94/213.47 5038 -> 5032[label="",style="dashed", color="red", weight=0]; 291.94/213.47 5038[label="error",fontsize=16,color="magenta"];16305[label="wy20000",fontsize=16,color="green",shape="box"];16306[label="wy439000",fontsize=16,color="green",shape="box"];16845 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16845[label="psMyInt (msMyInt (Pos Zero) wy732) wy821",fontsize=16,color="magenta"];16845 -> 16884[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16845 -> 16885[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16844[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="triangle"];16844 -> 16886[label="",style="solid", color="black", weight=3]; 291.94/213.47 16847 -> 16277[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16847[label="psMyInt (msMyInt (Pos Zero) wy732) wy823",fontsize=16,color="magenta"];16847 -> 16887[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16847 -> 16888[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16846[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="triangle"];16846 -> 16889[label="",style="solid", color="black", weight=3]; 291.94/213.47 16848[label="wy7530",fontsize=16,color="green",shape="box"];16849[label="Succ wy75600",fontsize=16,color="green",shape="box"];16850[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16850 -> 16890[label="",style="solid", color="black", weight=3]; 291.94/213.47 16851[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16851 -> 16891[label="",style="solid", color="black", weight=3]; 291.94/213.47 16852[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16852 -> 16892[label="",style="solid", color="black", weight=3]; 291.94/213.47 16853[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16853 -> 16893[label="",style="solid", color="black", weight=3]; 291.94/213.47 16854[label="Succ wy75300",fontsize=16,color="green",shape="box"];16855 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16855[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16855 -> 16894[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16855 -> 16895[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16856[label="Zero",fontsize=16,color="green",shape="box"];16857 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16857[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16858 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16858[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16859[label="Succ wy75300",fontsize=16,color="green",shape="box"];16860 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16860[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16861[label="Zero",fontsize=16,color="green",shape="box"];16862[label="Succ wy75600",fontsize=16,color="green",shape="box"];16863[label="wy7530",fontsize=16,color="green",shape="box"];16864[label="Succ wy75300",fontsize=16,color="green",shape="box"];16865 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16865[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16866[label="Zero",fontsize=16,color="green",shape="box"];16867 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16867[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16868 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16868[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16868 -> 16896[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16868 -> 16897[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16869[label="Succ wy75300",fontsize=16,color="green",shape="box"];16870 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16870[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16871[label="Zero",fontsize=16,color="green",shape="box"];16873 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16873[label="psMyInt (msMyInt (Neg Zero) wy750) wy829",fontsize=16,color="magenta"];16873 -> 16898[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16873 -> 16899[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16872[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="triangle"];16872 -> 16900[label="",style="solid", color="black", weight=3]; 291.94/213.47 16875 -> 16457[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16875[label="psMyInt (msMyInt (Neg Zero) wy750) wy831",fontsize=16,color="magenta"];16875 -> 16901[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16875 -> 16902[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16874[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="triangle"];16874 -> 16903[label="",style="solid", color="black", weight=3]; 291.94/213.47 16876[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16876 -> 16911[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16877[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16877 -> 16912[label="",style="solid", color="black", weight=3]; 291.94/213.47 16878[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16878 -> 16913[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16879[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16879 -> 16914[label="",style="solid", color="black", weight=3]; 291.94/213.47 16880[label="Succ wy73500",fontsize=16,color="green",shape="box"];16881[label="Zero",fontsize=16,color="green",shape="box"];16882[label="Zero",fontsize=16,color="green",shape="box"];16883[label="Succ wy73500",fontsize=16,color="green",shape="box"];5129[label="stop MyTrue",fontsize=16,color="black",shape="box"];5129 -> 6027[label="",style="solid", color="black", weight=3]; 291.94/213.47 5130 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 5130[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5130 -> 6028[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 5131 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 5131[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5131 -> 6029[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 5132 -> 5128[label="",style="dashed", color="red", weight=0]; 291.94/213.47 5132[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5132 -> 6030[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 5132 -> 6031[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16884[label="wy732",fontsize=16,color="green",shape="box"];16885[label="wy821",fontsize=16,color="green",shape="box"];16886[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="box"];16886 -> 16915[label="",style="solid", color="black", weight=3]; 291.94/213.47 16887[label="wy732",fontsize=16,color="green",shape="box"];16888[label="wy823",fontsize=16,color="green",shape="box"];16889[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="box"];16889 -> 16916[label="",style="solid", color="black", weight=3]; 291.94/213.47 16890[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16890 -> 16917[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16891[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16891 -> 16918[label="",style="solid", color="black", weight=3]; 291.94/213.47 16892[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16892 -> 16919[label="",style="dashed", color="green", weight=3]; 291.94/213.47 16893[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16893 -> 16920[label="",style="solid", color="black", weight=3]; 291.94/213.47 16894[label="Succ wy75300",fontsize=16,color="green",shape="box"];16895[label="Zero",fontsize=16,color="green",shape="box"];16896[label="Zero",fontsize=16,color="green",shape="box"];16897[label="Succ wy75300",fontsize=16,color="green",shape="box"];16898[label="wy750",fontsize=16,color="green",shape="box"];16899[label="wy829",fontsize=16,color="green",shape="box"];16900[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="box"];16900 -> 16921[label="",style="solid", color="black", weight=3]; 291.94/213.47 16901[label="wy750",fontsize=16,color="green",shape="box"];16902[label="wy831",fontsize=16,color="green",shape="box"];16903[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="box"];16903 -> 16922[label="",style="solid", color="black", weight=3]; 291.94/213.47 16911[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16911 -> 16927[label="",style="solid", color="black", weight=3]; 291.94/213.47 16912[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16912 -> 16928[label="",style="solid", color="black", weight=3]; 291.94/213.47 16913[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16913 -> 16929[label="",style="solid", color="black", weight=3]; 291.94/213.47 16914[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16914 -> 16930[label="",style="solid", color="black", weight=3]; 291.94/213.47 6027[label="error []",fontsize=16,color="red",shape="box"];6028[label="wy1700",fontsize=16,color="green",shape="box"];6029[label="wy160",fontsize=16,color="green",shape="box"];6030[label="wy160",fontsize=16,color="green",shape="box"];6031[label="wy1700",fontsize=16,color="green",shape="box"];16915 -> 16448[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16915[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837) (flip gtEsMyInt (Pos wy7350) wy821)",fontsize=16,color="magenta"];16915 -> 16931[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16915 -> 16932[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16915 -> 16933[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16916 -> 16459[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16916[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838) (flip gtEsMyInt (Neg wy7350) wy823)",fontsize=16,color="magenta"];16916 -> 16934[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16916 -> 16935[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16916 -> 16936[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16917[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16917 -> 16937[label="",style="solid", color="black", weight=3]; 291.94/213.47 16918[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16918 -> 16938[label="",style="solid", color="black", weight=3]; 291.94/213.47 16919[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16919 -> 16939[label="",style="solid", color="black", weight=3]; 291.94/213.47 16920[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16920 -> 16940[label="",style="solid", color="black", weight=3]; 291.94/213.47 16921 -> 16642[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16921[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839) (flip gtEsMyInt (Pos wy7530) wy829)",fontsize=16,color="magenta"];16921 -> 16941[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16921 -> 16942[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16921 -> 16943[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16922 -> 16650[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16922[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840) (flip gtEsMyInt (Neg wy7530) wy831)",fontsize=16,color="magenta"];16922 -> 16944[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16922 -> 16945[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16922 -> 16946[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16927 -> 16951[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16927[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16927 -> 16952[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16928[label="Nil",fontsize=16,color="green",shape="box"];16929 -> 16953[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16929[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16929 -> 16954[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16930[label="Nil",fontsize=16,color="green",shape="box"];16931[label="wy821",fontsize=16,color="green",shape="box"];16932[label="flip gtEsMyInt (Pos wy7350) wy821",fontsize=16,color="black",shape="triangle"];16932 -> 16955[label="",style="solid", color="black", weight=3]; 291.94/213.47 16933[label="wy837",fontsize=16,color="green",shape="box"];16934[label="wy823",fontsize=16,color="green",shape="box"];16935[label="flip gtEsMyInt (Neg wy7350) wy823",fontsize=16,color="black",shape="triangle"];16935 -> 16956[label="",style="solid", color="black", weight=3]; 291.94/213.47 16936[label="wy838",fontsize=16,color="green",shape="box"];16937 -> 16957[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16937[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16937 -> 16958[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16938[label="Nil",fontsize=16,color="green",shape="box"];16939 -> 16959[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16939[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16939 -> 16960[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16940[label="Nil",fontsize=16,color="green",shape="box"];16941 -> 16932[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16941[label="flip gtEsMyInt (Pos wy7530) wy829",fontsize=16,color="magenta"];16941 -> 16961[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16941 -> 16962[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16942[label="wy829",fontsize=16,color="green",shape="box"];16943[label="wy839",fontsize=16,color="green",shape="box"];16944 -> 16935[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16944[label="flip gtEsMyInt (Neg wy7530) wy831",fontsize=16,color="magenta"];16944 -> 16963[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16944 -> 16964[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16945[label="wy840",fontsize=16,color="green",shape="box"];16946[label="wy831",fontsize=16,color="green",shape="box"];16952 -> 12676[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16952[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16952 -> 16965[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16952 -> 16966[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16952 -> 16967[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16951[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="triangle"];16951 -> 16968[label="",style="solid", color="black", weight=3]; 291.94/213.47 16954 -> 12676[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16954[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16954 -> 16969[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16954 -> 16970[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16954 -> 16971[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16953[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="triangle"];16953 -> 16972[label="",style="solid", color="black", weight=3]; 291.94/213.47 16955[label="gtEsMyInt wy821 (Pos wy7350)",fontsize=16,color="black",shape="box"];16955 -> 16973[label="",style="solid", color="black", weight=3]; 291.94/213.47 16956[label="gtEsMyInt wy823 (Neg wy7350)",fontsize=16,color="black",shape="box"];16956 -> 16974[label="",style="solid", color="black", weight=3]; 291.94/213.47 16958 -> 14894[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16958[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16958 -> 16975[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16958 -> 16976[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16958 -> 16977[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16957[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="triangle"];16957 -> 16978[label="",style="solid", color="black", weight=3]; 291.94/213.47 16960 -> 14894[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16960[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16960 -> 16979[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16960 -> 16980[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16960 -> 16981[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16959[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="triangle"];16959 -> 16982[label="",style="solid", color="black", weight=3]; 291.94/213.47 16961[label="wy7530",fontsize=16,color="green",shape="box"];16962[label="wy829",fontsize=16,color="green",shape="box"];16963[label="wy7530",fontsize=16,color="green",shape="box"];16964[label="wy831",fontsize=16,color="green",shape="box"];16965[label="wy758",fontsize=16,color="green",shape="box"];16966[label="wy732",fontsize=16,color="green",shape="box"];16967[label="wy762",fontsize=16,color="green",shape="box"];16968[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="box"];16968 -> 16991[label="",style="solid", color="black", weight=3]; 291.94/213.47 16969[label="wy758",fontsize=16,color="green",shape="box"];16970[label="wy732",fontsize=16,color="green",shape="box"];16971[label="wy762",fontsize=16,color="green",shape="box"];16972[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="box"];16972 -> 16992[label="",style="solid", color="black", weight=3]; 291.94/213.47 16973[label="fsEsOrdering (compareMyInt wy821 (Pos wy7350)) LT",fontsize=16,color="black",shape="box"];16973 -> 16993[label="",style="solid", color="black", weight=3]; 291.94/213.47 16974[label="fsEsOrdering (compareMyInt wy823 (Neg wy7350)) LT",fontsize=16,color="black",shape="box"];16974 -> 16994[label="",style="solid", color="black", weight=3]; 291.94/213.47 16975[label="wy784",fontsize=16,color="green",shape="box"];16976[label="wy780",fontsize=16,color="green",shape="box"];16977[label="wy750",fontsize=16,color="green",shape="box"];16978[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="box"];16978 -> 16995[label="",style="solid", color="black", weight=3]; 291.94/213.47 16979[label="wy784",fontsize=16,color="green",shape="box"];16980[label="wy780",fontsize=16,color="green",shape="box"];16981[label="wy750",fontsize=16,color="green",shape="box"];16982[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="box"];16982 -> 16996[label="",style="solid", color="black", weight=3]; 291.94/213.47 16991 -> 14839[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16991[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845) (flip gtEsMyInt (Pos wy7350) wy758)",fontsize=16,color="magenta"];16991 -> 17001[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16991 -> 17002[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16991 -> 17003[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16991 -> 17004[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16992 -> 14839[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16992[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846) (flip gtEsMyInt (Neg wy7350) wy758)",fontsize=16,color="magenta"];16992 -> 17005[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16992 -> 17006[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16992 -> 17007[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16992 -> 17008[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16993[label="not (esEsOrdering (compareMyInt wy821 (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];16993 -> 17009[label="",style="solid", color="black", weight=3]; 291.94/213.47 16994[label="not (esEsOrdering (compareMyInt wy823 (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];16994 -> 17010[label="",style="solid", color="black", weight=3]; 291.94/213.47 16995 -> 16244[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16995[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847) (flip gtEsMyInt (Pos wy7530) wy780)",fontsize=16,color="magenta"];16995 -> 17011[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16995 -> 17012[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16995 -> 17013[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16995 -> 17014[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16996 -> 16244[label="",style="dashed", color="red", weight=0]; 291.94/213.47 16996[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848) (flip gtEsMyInt (Neg wy7530) wy780)",fontsize=16,color="magenta"];16996 -> 17015[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16996 -> 17016[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16996 -> 17017[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 16996 -> 17018[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17001[label="wy845",fontsize=16,color="green",shape="box"];17002[label="wy758",fontsize=16,color="green",shape="box"];17003[label="wy758",fontsize=16,color="green",shape="box"];17004[label="Pos wy7350",fontsize=16,color="green",shape="box"];17005[label="wy846",fontsize=16,color="green",shape="box"];17006[label="wy758",fontsize=16,color="green",shape="box"];17007[label="wy758",fontsize=16,color="green",shape="box"];17008[label="Neg wy7350",fontsize=16,color="green",shape="box"];17009[label="not (esEsOrdering (primCmpInt wy821 (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17417[label="wy821/Pos wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17417[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17417 -> 17023[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17418[label="wy821/Neg wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17418[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17418 -> 17024[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17010[label="not (esEsOrdering (primCmpInt wy823 (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17419[label="wy823/Pos wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17419[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17419 -> 17025[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17420[label="wy823/Neg wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17420[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17420 -> 17026[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17011[label="Pos wy7530",fontsize=16,color="green",shape="box"];17012[label="wy780",fontsize=16,color="green",shape="box"];17013[label="wy847",fontsize=16,color="green",shape="box"];17014[label="wy780",fontsize=16,color="green",shape="box"];17015[label="Neg wy7530",fontsize=16,color="green",shape="box"];17016[label="wy780",fontsize=16,color="green",shape="box"];17017[label="wy848",fontsize=16,color="green",shape="box"];17018[label="wy780",fontsize=16,color="green",shape="box"];17023[label="not (esEsOrdering (primCmpInt (Pos wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17421[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17421[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17421 -> 17070[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17422[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17422[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17422 -> 17071[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17024[label="not (esEsOrdering (primCmpInt (Neg wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17423[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17423[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17423 -> 17072[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17424[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17424[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17424 -> 17073[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17025[label="not (esEsOrdering (primCmpInt (Pos wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17425[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17425[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17425 -> 17074[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17426[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17426[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17426 -> 17075[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17026[label="not (esEsOrdering (primCmpInt (Neg wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17427[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17427[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17427 -> 17076[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17428[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17428[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17428 -> 17077[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17070[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17070 -> 17082[label="",style="solid", color="black", weight=3]; 291.94/213.47 17071[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17429[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17429[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17429 -> 17083[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17430[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17430[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17430 -> 17084[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17072[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17072 -> 17085[label="",style="solid", color="black", weight=3]; 291.94/213.47 17073[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17431[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17431[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17431 -> 17086[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17432[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17432[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17432 -> 17087[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17074[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17074 -> 17088[label="",style="solid", color="black", weight=3]; 291.94/213.47 17075[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17433[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17433[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17433 -> 17089[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17434[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17434[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17434 -> 17090[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17076[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17076 -> 17091[label="",style="solid", color="black", weight=3]; 291.94/213.47 17077[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17435[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17435[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17435 -> 17092[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17436[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17436[label="",style="solid", color="burlywood", weight=9]; 291.94/213.47 17436 -> 17093[label="",style="solid", color="burlywood", weight=3]; 291.94/213.47 17082 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17082[label="not (esEsOrdering (primCmpNat (Succ wy82100) wy7350) LT)",fontsize=16,color="magenta"];17082 -> 17098[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17082 -> 17099[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17083[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17083 -> 17100[label="",style="solid", color="black", weight=3]; 291.94/213.47 17084[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17084 -> 17101[label="",style="solid", color="black", weight=3]; 291.94/213.47 17085 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17085[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17086[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17086 -> 17102[label="",style="solid", color="black", weight=3]; 291.94/213.47 17087[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17087 -> 17103[label="",style="solid", color="black", weight=3]; 291.94/213.47 17088 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17088[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17089[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17089 -> 17104[label="",style="solid", color="black", weight=3]; 291.94/213.47 17090[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17090 -> 17105[label="",style="solid", color="black", weight=3]; 291.94/213.47 17091 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17091[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy82300)) LT)",fontsize=16,color="magenta"];17091 -> 17106[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17091 -> 17107[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17092[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17092 -> 17108[label="",style="solid", color="black", weight=3]; 291.94/213.47 17093[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17093 -> 17109[label="",style="solid", color="black", weight=3]; 291.94/213.47 17098[label="wy7350",fontsize=16,color="green",shape="box"];17099[label="Succ wy82100",fontsize=16,color="green",shape="box"];17100 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17100[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];17100 -> 17114[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17100 -> 17115[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17101 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17101[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17102 -> 14929[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17102[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17103 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17103[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17104 -> 13404[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17104[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17105 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17105[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17106[label="Succ wy82300",fontsize=16,color="green",shape="box"];17107[label="wy7350",fontsize=16,color="green",shape="box"];17108 -> 14963[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17108[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];17108 -> 17116[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17108 -> 17117[label="",style="dashed", color="magenta", weight=3]; 291.94/213.47 17109 -> 14908[label="",style="dashed", color="red", weight=0]; 291.94/213.47 17109[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17114[label="Succ wy73500",fontsize=16,color="green",shape="box"];17115[label="Zero",fontsize=16,color="green",shape="box"];17116[label="Zero",fontsize=16,color="green",shape="box"];17117[label="Succ wy73500",fontsize=16,color="green",shape="box"];} 291.94/213.47 291.94/213.47 ---------------------------------------- 291.94/213.47 291.94/213.47 (2481) 291.94/213.47 TRUE 291.94/213.51 EOF