/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.pl /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern test_fun(g,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) IntegerArithmeticTransformerProof [SOUND, 0 ms] (2) Prolog (3) UnifyTransformerProof [EQUIVALENT, 0 ms] (4) Prolog (5) OrTransformerProof [EQUIVALENT, 0 ms] (6) Prolog (7) PrologToPiTRSProof [SOUND, 18 ms] (8) PiTRS (9) DependencyPairsProof [EQUIVALENT, 140 ms] (10) PiDP (11) DependencyGraphProof [EQUIVALENT, 0 ms] (12) AND (13) PiDP (14) UsableRulesProof [EQUIVALENT, 0 ms] (15) PiDP (16) PiDPToQDPProof [EQUIVALENT, 0 ms] (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) PiDP (21) UsableRulesProof [EQUIVALENT, 0 ms] (22) PiDP (23) PiDPToQDPProof [EQUIVALENT, 0 ms] (24) QDP (25) QDPSizeChangeProof [EQUIVALENT, 0 ms] (26) YES (27) PiDP (28) UsableRulesProof [EQUIVALENT, 0 ms] (29) PiDP (30) PiDPToQDPProof [SOUND, 0 ms] (31) QDP (32) QDPSizeChangeProof [EQUIVALENT, 0 ms] (33) YES (34) PiDP (35) UsableRulesProof [EQUIVALENT, 0 ms] (36) PiDP (37) PiDPToQDPProof [SOUND, 0 ms] (38) QDP (39) QDPSizeChangeProof [EQUIVALENT, 0 ms] (40) YES (41) PiDP (42) UsableRulesProof [EQUIVALENT, 0 ms] (43) PiDP (44) PiDPToQDPProof [SOUND, 0 ms] (45) QDP (46) QDPSizeChangeProof [EQUIVALENT, 0 ms] (47) YES (48) PiDP (49) UsableRulesProof [EQUIVALENT, 0 ms] (50) PiDP (51) PiDPToQDPProof [SOUND, 0 ms] (52) QDP (53) QDPSizeChangeProof [EQUIVALENT, 0 ms] (54) YES (55) PiDP (56) UsableRulesProof [EQUIVALENT, 0 ms] (57) PiDP (58) PiDPToQDPProof [SOUND, 0 ms] (59) QDP (60) QDPSizeChangeProof [EQUIVALENT, 0 ms] (61) YES (62) PiDP (63) UsableRulesProof [EQUIVALENT, 0 ms] (64) PiDP (65) PiDPToQDPProof [EQUIVALENT, 0 ms] (66) QDP (67) QDPSizeChangeProof [EQUIVALENT, 0 ms] (68) YES (69) PiDP (70) UsableRulesProof [EQUIVALENT, 0 ms] (71) PiDP (72) PiDPToQDPProof [SOUND, 0 ms] (73) QDP (74) TransformationProof [EQUIVALENT, 44 ms] (75) QDP (76) TransformationProof [EQUIVALENT, 0 ms] (77) QDP (78) TransformationProof [EQUIVALENT, 0 ms] (79) QDP (80) TransformationProof [EQUIVALENT, 0 ms] (81) QDP (82) TransformationProof [EQUIVALENT, 0 ms] (83) QDP (84) TransformationProof [EQUIVALENT, 0 ms] (85) QDP (86) TransformationProof [EQUIVALENT, 0 ms] (87) QDP (88) TransformationProof [EQUIVALENT, 0 ms] (89) QDP (90) TransformationProof [EQUIVALENT, 0 ms] (91) QDP (92) TransformationProof [EQUIVALENT, 0 ms] (93) QDP (94) TransformationProof [EQUIVALENT, 0 ms] (95) QDP (96) TransformationProof [EQUIVALENT, 0 ms] (97) QDP (98) UsableRulesProof [EQUIVALENT, 0 ms] (99) QDP (100) QReductionProof [EQUIVALENT, 0 ms] (101) QDP (102) TransformationProof [SOUND, 5 ms] (103) QDP (104) TransformationProof [SOUND, 0 ms] (105) QDP (106) UsableRulesProof [EQUIVALENT, 0 ms] (107) QDP (108) QReductionProof [EQUIVALENT, 0 ms] (109) QDP (110) TransformationProof [EQUIVALENT, 0 ms] (111) QDP (112) TransformationProof [EQUIVALENT, 0 ms] (113) QDP (114) TransformationProof [EQUIVALENT, 0 ms] (115) QDP (116) TransformationProof [EQUIVALENT, 0 ms] (117) QDP (118) TransformationProof [EQUIVALENT, 0 ms] (119) QDP (120) TransformationProof [EQUIVALENT, 0 ms] (121) QDP (122) TransformationProof [EQUIVALENT, 0 ms] (123) QDP (124) TransformationProof [EQUIVALENT, 0 ms] (125) QDP (126) TransformationProof [EQUIVALENT, 0 ms] (127) QDP (128) PrologToPiTRSProof [SOUND, 16 ms] (129) PiTRS (130) DependencyPairsProof [EQUIVALENT, 121 ms] (131) PiDP (132) DependencyGraphProof [EQUIVALENT, 0 ms] (133) AND (134) PiDP (135) UsableRulesProof [EQUIVALENT, 0 ms] (136) PiDP (137) PiDPToQDPProof [EQUIVALENT, 0 ms] (138) QDP (139) QDPSizeChangeProof [EQUIVALENT, 0 ms] (140) YES (141) PiDP (142) UsableRulesProof [EQUIVALENT, 0 ms] (143) PiDP (144) PiDPToQDPProof [EQUIVALENT, 0 ms] (145) QDP (146) QDPSizeChangeProof [EQUIVALENT, 0 ms] (147) YES (148) PiDP (149) UsableRulesProof [EQUIVALENT, 0 ms] (150) PiDP (151) PiDPToQDPProof [SOUND, 0 ms] (152) QDP (153) QDPSizeChangeProof [EQUIVALENT, 0 ms] (154) YES (155) PiDP (156) UsableRulesProof [EQUIVALENT, 0 ms] (157) PiDP (158) PiDPToQDPProof [SOUND, 0 ms] (159) QDP (160) QDPSizeChangeProof [EQUIVALENT, 0 ms] (161) YES (162) PiDP (163) UsableRulesProof [EQUIVALENT, 0 ms] (164) PiDP (165) PiDPToQDPProof [SOUND, 0 ms] (166) QDP (167) QDPSizeChangeProof [EQUIVALENT, 0 ms] (168) YES (169) PiDP (170) UsableRulesProof [EQUIVALENT, 0 ms] (171) PiDP (172) PiDPToQDPProof [SOUND, 0 ms] (173) QDP (174) QDPSizeChangeProof [EQUIVALENT, 0 ms] (175) YES (176) PiDP (177) UsableRulesProof [EQUIVALENT, 0 ms] (178) PiDP (179) PiDPToQDPProof [SOUND, 0 ms] (180) QDP (181) QDPSizeChangeProof [EQUIVALENT, 0 ms] (182) YES (183) PiDP (184) UsableRulesProof [EQUIVALENT, 0 ms] (185) PiDP (186) PiDPToQDPProof [EQUIVALENT, 0 ms] (187) QDP (188) QDPSizeChangeProof [EQUIVALENT, 0 ms] (189) YES (190) PiDP (191) UsableRulesProof [EQUIVALENT, 0 ms] (192) PiDP (193) PiDPToQDPProof [SOUND, 0 ms] (194) QDP (195) TransformationProof [EQUIVALENT, 50 ms] (196) QDP (197) TransformationProof [EQUIVALENT, 0 ms] (198) QDP (199) TransformationProof [EQUIVALENT, 0 ms] (200) QDP (201) TransformationProof [EQUIVALENT, 0 ms] (202) QDP (203) TransformationProof [EQUIVALENT, 0 ms] (204) QDP (205) TransformationProof [EQUIVALENT, 0 ms] (206) QDP (207) TransformationProof [EQUIVALENT, 0 ms] (208) QDP (209) TransformationProof [EQUIVALENT, 0 ms] (210) QDP (211) TransformationProof [EQUIVALENT, 0 ms] (212) QDP (213) TransformationProof [EQUIVALENT, 0 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 0 ms] (216) QDP (217) TransformationProof [EQUIVALENT, 0 ms] (218) QDP (219) UsableRulesProof [EQUIVALENT, 0 ms] (220) QDP (221) QReductionProof [EQUIVALENT, 0 ms] (222) QDP (223) TransformationProof [SOUND, 0 ms] (224) QDP (225) TransformationProof [SOUND, 0 ms] (226) QDP (227) UsableRulesProof [EQUIVALENT, 0 ms] (228) QDP (229) QReductionProof [EQUIVALENT, 0 ms] (230) QDP (231) TransformationProof [EQUIVALENT, 0 ms] (232) QDP (233) TransformationProof [EQUIVALENT, 0 ms] (234) QDP (235) TransformationProof [EQUIVALENT, 0 ms] (236) QDP (237) TransformationProof [EQUIVALENT, 0 ms] (238) QDP (239) TransformationProof [EQUIVALENT, 0 ms] (240) QDP (241) TransformationProof [EQUIVALENT, 0 ms] (242) QDP (243) TransformationProof [EQUIVALENT, 0 ms] (244) QDP (245) TransformationProof [EQUIVALENT, 0 ms] (246) QDP (247) TransformationProof [EQUIVALENT, 0 ms] (248) QDP (249) UndefinedPredicateHandlerProof [SOUND, 0 ms] (250) Prolog (251) PrologToPiTRSProof [SOUND, 7 ms] (252) PiTRS (253) DependencyPairsProof [EQUIVALENT, 92 ms] (254) PiDP (255) DependencyGraphProof [EQUIVALENT, 0 ms] (256) AND (257) PiDP (258) UsableRulesProof [EQUIVALENT, 0 ms] (259) PiDP (260) PiDPToQDPProof [SOUND, 18 ms] (261) QDP (262) TransformationProof [EQUIVALENT, 0 ms] (263) QDP (264) TransformationProof [EQUIVALENT, 0 ms] (265) QDP (266) UsableRulesProof [EQUIVALENT, 0 ms] (267) QDP (268) QReductionProof [EQUIVALENT, 0 ms] (269) QDP (270) TransformationProof [EQUIVALENT, 0 ms] (271) QDP (272) TransformationProof [EQUIVALENT, 0 ms] (273) QDP (274) TransformationProof [EQUIVALENT, 0 ms] (275) QDP (276) UsableRulesProof [EQUIVALENT, 0 ms] (277) QDP (278) QReductionProof [EQUIVALENT, 0 ms] (279) QDP (280) TransformationProof [EQUIVALENT, 0 ms] (281) QDP (282) UsableRulesProof [EQUIVALENT, 0 ms] (283) QDP (284) QReductionProof [EQUIVALENT, 0 ms] (285) QDP (286) TransformationProof [EQUIVALENT, 0 ms] (287) QDP (288) UsableRulesProof [EQUIVALENT, 0 ms] (289) QDP (290) QReductionProof [EQUIVALENT, 0 ms] (291) QDP (292) PiDP (293) UsableRulesProof [EQUIVALENT, 0 ms] (294) PiDP (295) PiDP (296) UsableRulesProof [EQUIVALENT, 0 ms] (297) PiDP (298) PrologToPiTRSProof [SOUND, 18 ms] (299) PiTRS (300) DependencyPairsProof [EQUIVALENT, 64 ms] (301) PiDP (302) DependencyGraphProof [EQUIVALENT, 0 ms] (303) AND (304) PiDP (305) UsableRulesProof [EQUIVALENT, 0 ms] (306) PiDP (307) PiDPToQDPProof [SOUND, 0 ms] (308) QDP (309) TransformationProof [EQUIVALENT, 0 ms] (310) QDP (311) TransformationProof [EQUIVALENT, 1 ms] (312) QDP (313) UsableRulesProof [EQUIVALENT, 0 ms] (314) QDP (315) QReductionProof [EQUIVALENT, 0 ms] (316) QDP (317) TransformationProof [EQUIVALENT, 0 ms] (318) QDP (319) TransformationProof [EQUIVALENT, 0 ms] (320) QDP (321) TransformationProof [EQUIVALENT, 0 ms] (322) QDP (323) UsableRulesProof [EQUIVALENT, 0 ms] (324) QDP (325) QReductionProof [EQUIVALENT, 0 ms] (326) QDP (327) TransformationProof [EQUIVALENT, 0 ms] (328) QDP (329) UsableRulesProof [EQUIVALENT, 0 ms] (330) QDP (331) QReductionProof [EQUIVALENT, 0 ms] (332) QDP (333) TransformationProof [EQUIVALENT, 0 ms] (334) QDP (335) UsableRulesProof [EQUIVALENT, 0 ms] (336) QDP (337) QReductionProof [EQUIVALENT, 0 ms] (338) QDP (339) PiDP (340) UsableRulesProof [EQUIVALENT, 0 ms] (341) PiDP (342) PiDP (343) UsableRulesProof [EQUIVALENT, 0 ms] (344) PiDP (345) PrologToDTProblemTransformerProof [SOUND, 95 ms] (346) TRIPLES (347) TriplesToPiDPProof [SOUND, 0 ms] (348) PiDP (349) DependencyGraphProof [EQUIVALENT, 0 ms] (350) AND (351) PiDP (352) PiDPToQDPProof [SOUND, 0 ms] (353) QDP (354) NonTerminationLoopProof [COMPLETE, 0 ms] (355) NO (356) PiDP (357) PiDPToQDPProof [SOUND, 0 ms] (358) QDP (359) NonTerminationLoopProof [COMPLETE, 0 ms] (360) NO (361) PiDP (362) PrologToIRSwTTransformerProof [SOUND, 91 ms] (363) AND (364) IRSwT (365) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (366) IRSwT (367) IntTRSCompressionProof [EQUIVALENT, 0 ms] (368) IRSwT (369) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (370) IRSwT (371) IRSwTTerminationDigraphProof [EQUIVALENT, 35 ms] (372) IRSwT (373) IntTRSCompressionProof [EQUIVALENT, 0 ms] (374) IRSwT (375) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (376) IRSwT (377) IRSwTToIntTRSProof [SOUND, 9 ms] (378) IRSwT (379) IntTRSCompressionProof [EQUIVALENT, 0 ms] (380) IRSwT (381) IntTRSPeriodicNontermProof [COMPLETE, 7 ms] (382) NO (383) IRSwT (384) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (385) IRSwT (386) IntTRSCompressionProof [EQUIVALENT, 0 ms] (387) IRSwT (388) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (389) IRSwT (390) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms] (391) IRSwT (392) IntTRSCompressionProof [EQUIVALENT, 0 ms] (393) IRSwT (394) TempFilterProof [SOUND, 8 ms] (395) IntTRS (396) PolynomialOrderProcessor [EQUIVALENT, 3 ms] (397) YES ---------------------------------------- (0) Obligation: Clauses: test_fun(X, Y) :- loop1(X, Y, 0). loop1(X, Y, C) :- ','(>=(X, 0), ','(is(Y1, 1), loop2(X, Y1, C))). loop1(X, Y, C) :- <(X, 0). loop2(X, Y, C) :- ','(>(X, Y), ','(is(Y1, *(2, Y)), ','(is(C1, +(C, 1)), loop2(X, Y1, C1)))). loop2(X, Y, C) :- ','(=<(X, Y), ','(is(X1, -(X, 1)), loop1(X1, Y, C))). Query: test_fun(g,g) ---------------------------------------- (1) IntegerArithmeticTransformerProof (SOUND) Added definitions of predefined predicates [PROLOG]. ---------------------------------------- (2) Obligation: Clauses: test_fun(X, Y) :- loop1(X, Y, zero). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), ','(;(isGreater(X1, X2), =(X1, X2)), ','(=(Y1, succ(zero)), loop2(X, Y1, C))))). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), isLess(X1, X2))). loop2(X, Y, C) :- ','(=(X1, X), ','(=(X2, Y), ','(isGreater(X1, X2), ','(isTimes(succ(succ(zero)), Y, U), ','(=(Y1, U), ','(isPlus(C, succ(zero), U), ','(=(C1, U), loop2(X, Y1, C1)))))))). loop2(X, Y, C) :- ','(=(X2, X), ','(=(X3, Y), ','(;(=(X2, X3), isLess(X2, X3)), ','(isMinus(X, succ(zero), U), ','(=(X1, U), loop1(X1, Y, C)))))). isPlus(zero, X, X). isPlus(succ(X), zero, succ(X)). isPlus(succ(X), succ(Y), succ(succ(Z))) :- isPlus(X, Y, Z). isPlus(succ(X), pred(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), zero, pred(X)). isPlus(pred(X), succ(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), pred(Y), pred(pred(Z))) :- isPlus(X, Y, Z). isMinus(X, zero, X). isMinus(zero, succ(Y), pred(Z)) :- isMinus(zero, Y, Z). isMinus(zero, pred(Y), succ(Z)) :- isMinus(zero, Y, Z). isMinus(succ(X), succ(Y), Z) :- isMinus(X, Y, Z). isMinus(succ(X), pred(Y), succ(succ(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), succ(Y), pred(pred(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), pred(Y), Z) :- isMinus(X, Y, Z). isTimes(X, zero, zero). isTimes(zero, succ(Y), zero). isTimes(zero, pred(Y), zero). isTimes(succ(X), succ(Y), Z) :- ','(isTimes(succ(X), Y, A), isPlus(A, succ(X), Z)). isTimes(succ(X), pred(Y), Z) :- ','(isTimes(succ(X), Y, A), isMinus(A, succ(X), Z)). isTimes(pred(X), succ(Y), Z) :- ','(isTimes(pred(X), Y, A), isPlus(A, pred(X), Z)). isTimes(pred(X), pred(Y), Z) :- ','(isTimes(pred(X), Y, A), isMinus(A, pred(X), Z)). isDiv(zero, succ(Y), zero). isDiv(zero, pred(Y), zero). isDiv(succ(X), succ(Y), zero) :- isMinus(succ(X), succ(Y), pred(Z)). isDiv(succ(X), succ(Y), succ(Z)) :- ','(isMinus(succ(X), succ(Y), A), isDiv(A, succ(Y), Z)). isDiv(succ(X), pred(Y), Z) :- ','(isMinus(zero, pred(Y), A), ','(isDiv(succ(X), A, B), isMinus(zero, B, Z))). isDiv(pred(X), pred(Y), zero) :- isMinus(pred(X), pred(Y), succ(Z)). isDiv(pred(X), pred(Y), succ(Z)) :- ','(isMinus(pred(X), pred(Y), A), isDiv(A, pred(Y), Z)). isDiv(pred(X), succ(Y), Z) :- ','(isMinus(zero, pred(X), A), ','(isDiv(A, succ(Y), B), isMinus(zero, B, Z))). isModulo(X, Y, Z) :- ','(isDiv(X, Y, A), ','(isTimes(A, Y, B), isMinus(X, B, Z))). isGreater(succ(X), zero). isGreater(succ(X), pred(Y)). isGreater(succ(X), succ(Y)) :- isGreater(X, Y). isGreater(zero, pred(Y)). isGreater(pred(X), pred(Y)) :- isGreater(X, Y). isLess(pred(X), zero). isLess(pred(X), succ(Y)). isLess(pred(X), pred(Y)) :- isLess(X, Y). isLess(zero, succ(Y)). isLess(succ(X), succ(Y)) :- isLess(X, Y). Query: test_fun(g,g) ---------------------------------------- (3) UnifyTransformerProof (EQUIVALENT) Added a fact for the built-in = predicate [PROLOG]. ---------------------------------------- (4) Obligation: Clauses: test_fun(X, Y) :- loop1(X, Y, zero). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), ','(;(isGreater(X1, X2), =(X1, X2)), ','(=(Y1, succ(zero)), loop2(X, Y1, C))))). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), isLess(X1, X2))). loop2(X, Y, C) :- ','(=(X1, X), ','(=(X2, Y), ','(isGreater(X1, X2), ','(isTimes(succ(succ(zero)), Y, U), ','(=(Y1, U), ','(isPlus(C, succ(zero), U), ','(=(C1, U), loop2(X, Y1, C1)))))))). loop2(X, Y, C) :- ','(=(X2, X), ','(=(X3, Y), ','(;(=(X2, X3), isLess(X2, X3)), ','(isMinus(X, succ(zero), U), ','(=(X1, U), loop1(X1, Y, C)))))). isPlus(zero, X, X). isPlus(succ(X), zero, succ(X)). isPlus(succ(X), succ(Y), succ(succ(Z))) :- isPlus(X, Y, Z). isPlus(succ(X), pred(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), zero, pred(X)). isPlus(pred(X), succ(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), pred(Y), pred(pred(Z))) :- isPlus(X, Y, Z). isMinus(X, zero, X). isMinus(zero, succ(Y), pred(Z)) :- isMinus(zero, Y, Z). isMinus(zero, pred(Y), succ(Z)) :- isMinus(zero, Y, Z). isMinus(succ(X), succ(Y), Z) :- isMinus(X, Y, Z). isMinus(succ(X), pred(Y), succ(succ(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), succ(Y), pred(pred(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), pred(Y), Z) :- isMinus(X, Y, Z). isTimes(X, zero, zero). isTimes(zero, succ(Y), zero). isTimes(zero, pred(Y), zero). isTimes(succ(X), succ(Y), Z) :- ','(isTimes(succ(X), Y, A), isPlus(A, succ(X), Z)). isTimes(succ(X), pred(Y), Z) :- ','(isTimes(succ(X), Y, A), isMinus(A, succ(X), Z)). isTimes(pred(X), succ(Y), Z) :- ','(isTimes(pred(X), Y, A), isPlus(A, pred(X), Z)). isTimes(pred(X), pred(Y), Z) :- ','(isTimes(pred(X), Y, A), isMinus(A, pred(X), Z)). isDiv(zero, succ(Y), zero). isDiv(zero, pred(Y), zero). isDiv(succ(X), succ(Y), zero) :- isMinus(succ(X), succ(Y), pred(Z)). isDiv(succ(X), succ(Y), succ(Z)) :- ','(isMinus(succ(X), succ(Y), A), isDiv(A, succ(Y), Z)). isDiv(succ(X), pred(Y), Z) :- ','(isMinus(zero, pred(Y), A), ','(isDiv(succ(X), A, B), isMinus(zero, B, Z))). isDiv(pred(X), pred(Y), zero) :- isMinus(pred(X), pred(Y), succ(Z)). isDiv(pred(X), pred(Y), succ(Z)) :- ','(isMinus(pred(X), pred(Y), A), isDiv(A, pred(Y), Z)). isDiv(pred(X), succ(Y), Z) :- ','(isMinus(zero, pred(X), A), ','(isDiv(A, succ(Y), B), isMinus(zero, B, Z))). isModulo(X, Y, Z) :- ','(isDiv(X, Y, A), ','(isTimes(A, Y, B), isMinus(X, B, Z))). isGreater(succ(X), zero). isGreater(succ(X), pred(Y)). isGreater(succ(X), succ(Y)) :- isGreater(X, Y). isGreater(zero, pred(Y)). isGreater(pred(X), pred(Y)) :- isGreater(X, Y). isLess(pred(X), zero). isLess(pred(X), succ(Y)). isLess(pred(X), pred(Y)) :- isLess(X, Y). isLess(zero, succ(Y)). isLess(succ(X), succ(Y)) :- isLess(X, Y). =(X, X). Query: test_fun(g,g) ---------------------------------------- (5) OrTransformerProof (EQUIVALENT) Transformed all or-constructs[PROLOG]. ---------------------------------------- (6) Obligation: Clauses: test_fun(X, Y) :- loop1(X, Y, zero). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), ','(isGreater(X1, X2), ','(=(Y1, succ(zero)), loop2(X, Y1, C))))). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), ','(=(X1, X2), ','(=(Y1, succ(zero)), loop2(X, Y1, C))))). loop1(X, Y, C) :- ','(=(X1, X), ','(=(X2, zero), isLess(X1, X2))). loop2(X, Y, C) :- ','(=(X1, X), ','(=(X2, Y), ','(isGreater(X1, X2), ','(isTimes(succ(succ(zero)), Y, U), ','(=(Y1, U), ','(isPlus(C, succ(zero), U), ','(=(C1, U), loop2(X, Y1, C1)))))))). loop2(X, Y, C) :- ','(=(X2, X), ','(=(X3, Y), ','(=(X2, X3), ','(isMinus(X, succ(zero), U), ','(=(X1, U), loop1(X1, Y, C)))))). loop2(X, Y, C) :- ','(=(X2, X), ','(=(X3, Y), ','(isLess(X2, X3), ','(isMinus(X, succ(zero), U), ','(=(X1, U), loop1(X1, Y, C)))))). isPlus(zero, X, X). isPlus(succ(X), zero, succ(X)). isPlus(succ(X), succ(Y), succ(succ(Z))) :- isPlus(X, Y, Z). isPlus(succ(X), pred(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), zero, pred(X)). isPlus(pred(X), succ(Y), Z) :- isPlus(X, Y, Z). isPlus(pred(X), pred(Y), pred(pred(Z))) :- isPlus(X, Y, Z). isMinus(X, zero, X). isMinus(zero, succ(Y), pred(Z)) :- isMinus(zero, Y, Z). isMinus(zero, pred(Y), succ(Z)) :- isMinus(zero, Y, Z). isMinus(succ(X), succ(Y), Z) :- isMinus(X, Y, Z). isMinus(succ(X), pred(Y), succ(succ(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), succ(Y), pred(pred(Z))) :- isMinus(X, Y, Z). isMinus(pred(X), pred(Y), Z) :- isMinus(X, Y, Z). isTimes(X, zero, zero). isTimes(zero, succ(Y), zero). isTimes(zero, pred(Y), zero). isTimes(succ(X), succ(Y), Z) :- ','(isTimes(succ(X), Y, A), isPlus(A, succ(X), Z)). isTimes(succ(X), pred(Y), Z) :- ','(isTimes(succ(X), Y, A), isMinus(A, succ(X), Z)). isTimes(pred(X), succ(Y), Z) :- ','(isTimes(pred(X), Y, A), isPlus(A, pred(X), Z)). isTimes(pred(X), pred(Y), Z) :- ','(isTimes(pred(X), Y, A), isMinus(A, pred(X), Z)). isDiv(zero, succ(Y), zero). isDiv(zero, pred(Y), zero). isDiv(succ(X), succ(Y), zero) :- isMinus(succ(X), succ(Y), pred(Z)). isDiv(succ(X), succ(Y), succ(Z)) :- ','(isMinus(succ(X), succ(Y), A), isDiv(A, succ(Y), Z)). isDiv(succ(X), pred(Y), Z) :- ','(isMinus(zero, pred(Y), A), ','(isDiv(succ(X), A, B), isMinus(zero, B, Z))). isDiv(pred(X), pred(Y), zero) :- isMinus(pred(X), pred(Y), succ(Z)). isDiv(pred(X), pred(Y), succ(Z)) :- ','(isMinus(pred(X), pred(Y), A), isDiv(A, pred(Y), Z)). isDiv(pred(X), succ(Y), Z) :- ','(isMinus(zero, pred(X), A), ','(isDiv(A, succ(Y), B), isMinus(zero, B, Z))). isModulo(X, Y, Z) :- ','(isDiv(X, Y, A), ','(isTimes(A, Y, B), isMinus(X, B, Z))). isGreater(succ(X), zero). isGreater(succ(X), pred(Y)). isGreater(succ(X), succ(Y)) :- isGreater(X, Y). isGreater(zero, pred(Y)). isGreater(pred(X), pred(Y)) :- isGreater(X, Y). isLess(pred(X), zero). isLess(pred(X), succ(Y)). isLess(pred(X), pred(Y)) :- isLess(X, Y). isLess(zero, succ(Y)). isLess(succ(X), succ(Y)) :- isLess(X, Y). =(X, X). Query: test_fun(g,g) ---------------------------------------- (7) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: test_fun_in_2: (b,b) loop1_in_3: (b,b,b) isGreater_in_2: (b,b) loop2_in_3: (b,b,b) isTimes_in_3: (b,b,f) isMinus_in_3: (b,b,f) isPlus_in_3: (b,b,f) (b,b,b) isLess_in_2: (b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (8) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ---------------------------------------- (9) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, zero)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, zero) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) LOOP1_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U62_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(pred(X), pred(Y)) -> U63_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) LOOP2_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> ISTIMES_IN_GGA(succ(succ(zero)), Y, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U39_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U41_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U43_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U33_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U34_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U35_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U37_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U38_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U29_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U30_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U31_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U32_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> =_IN_AG(Y1, U) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> ISPLUS_IN_GGG(C, succ(zero), U) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U29_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U30_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U31_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U32_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> =_IN_AG(C1, U) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_GGG(X, Y, C, loop2_in_ggg(X, Y1, C1)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> =_IN_AG(X3, Y) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> =_IN_GG(X2, X3) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> U24_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> ISLESS_IN_GG(X2, X3) ISLESS_IN_GG(pred(X), pred(Y)) -> U64_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(succ(X), succ(Y)) -> U65_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> U28_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> =_IN_GG(X1, X2) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_GGG(X, Y, C, isLess_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISLESS_IN_GG(X1, X2) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x3, x4) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U62_GG(x1, x2, x3) = U62_GG(x3) U63_GG(x1, x2, x3) = U63_GG(x3) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x3, x4) U6_GGG(x1, x2, x3, x4) = U6_GGG(x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x3, x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U39_GGA(x1, x2, x3, x4) = U39_GGA(x1, x4) U41_GGA(x1, x2, x3, x4) = U41_GGA(x1, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U33_GGA(x1, x2, x3) = U33_GGA(x3) U34_GGA(x1, x2, x3) = U34_GGA(x3) U35_GGA(x1, x2, x3, x4) = U35_GGA(x4) U36_GGA(x1, x2, x3, x4) = U36_GGA(x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U29_GGA(x1, x2, x3, x4) = U29_GGA(x4) U30_GGA(x1, x2, x3, x4) = U30_GGA(x4) U31_GGA(x1, x2, x3, x4) = U31_GGA(x4) U32_GGA(x1, x2, x3, x4) = U32_GGA(x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x4) U40_GGA(x1, x2, x3, x4) = U40_GGA(x4) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x4, x5, x6) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U29_GGG(x1, x2, x3, x4) = U29_GGG(x4) U30_GGG(x1, x2, x3, x4) = U30_GGG(x4) U31_GGG(x1, x2, x3, x4) = U31_GGG(x4) U32_GGG(x1, x2, x3, x4) = U32_GGG(x4) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x4, x5) U18_GGG(x1, x2, x3, x4) = U18_GGG(x4) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGG(x1, x2, x3, x4) = U22_GGG(x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x2, x3, x4) U24_GGG(x1, x2, x3, x4) = U24_GGG(x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U64_GG(x1, x2, x3) = U64_GG(x3) U65_GG(x1, x2, x3) = U65_GG(x3) U26_GGG(x1, x2, x3, x4) = U26_GGG(x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x3, x4) U9_GGG(x1, x2, x3, x4) = U9_GGG(x4) U10_GGG(x1, x2, x3, x4) = U10_GGG(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (10) Obligation: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, zero)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, zero) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) LOOP1_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U62_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(pred(X), pred(Y)) -> U63_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) LOOP2_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> ISTIMES_IN_GGA(succ(succ(zero)), Y, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U39_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U41_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U43_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U33_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U34_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U35_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U37_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U38_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U29_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U30_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U31_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U32_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> =_IN_AG(Y1, U) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> ISPLUS_IN_GGG(C, succ(zero), U) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U29_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U30_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U31_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U32_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> =_IN_AG(C1, U) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_GGG(X, Y, C, loop2_in_ggg(X, Y1, C1)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> =_IN_AG(X3, Y) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> =_IN_GG(X2, X3) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> U24_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> ISLESS_IN_GG(X2, X3) ISLESS_IN_GG(pred(X), pred(Y)) -> U64_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(succ(X), succ(Y)) -> U65_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> U28_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> =_IN_GG(X1, X2) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_GGG(X, Y, C, isLess_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISLESS_IN_GG(X1, X2) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x3, x4) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U62_GG(x1, x2, x3) = U62_GG(x3) U63_GG(x1, x2, x3) = U63_GG(x3) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x3, x4) U6_GGG(x1, x2, x3, x4) = U6_GGG(x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x3, x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U39_GGA(x1, x2, x3, x4) = U39_GGA(x1, x4) U41_GGA(x1, x2, x3, x4) = U41_GGA(x1, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U33_GGA(x1, x2, x3) = U33_GGA(x3) U34_GGA(x1, x2, x3) = U34_GGA(x3) U35_GGA(x1, x2, x3, x4) = U35_GGA(x4) U36_GGA(x1, x2, x3, x4) = U36_GGA(x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U29_GGA(x1, x2, x3, x4) = U29_GGA(x4) U30_GGA(x1, x2, x3, x4) = U30_GGA(x4) U31_GGA(x1, x2, x3, x4) = U31_GGA(x4) U32_GGA(x1, x2, x3, x4) = U32_GGA(x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x4) U40_GGA(x1, x2, x3, x4) = U40_GGA(x4) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x4, x5, x6) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U29_GGG(x1, x2, x3, x4) = U29_GGG(x4) U30_GGG(x1, x2, x3, x4) = U30_GGG(x4) U31_GGG(x1, x2, x3, x4) = U31_GGG(x4) U32_GGG(x1, x2, x3, x4) = U32_GGG(x4) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x4, x5) U18_GGG(x1, x2, x3, x4) = U18_GGG(x4) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGG(x1, x2, x3, x4) = U22_GGG(x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x2, x3, x4) U24_GGG(x1, x2, x3, x4) = U24_GGG(x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U64_GG(x1, x2, x3) = U64_GG(x3) U65_GG(x1, x2, x3) = U65_GG(x3) U26_GGG(x1, x2, x3, x4) = U26_GGG(x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x3, x4) U9_GGG(x1, x2, x3, x4) = U9_GGG(x4) U10_GGG(x1, x2, x3, x4) = U10_GGG(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (11) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 9 SCCs with 59 less nodes. ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Pi DP problem: The TRS P consists of the following rules: ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (14) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (15) Obligation: Pi DP problem: The TRS P consists of the following rules: ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (16) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (18) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (21) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (22) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (23) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (25) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 ---------------------------------------- (26) YES ---------------------------------------- (27) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (28) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (29) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (32) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (33) YES ---------------------------------------- (34) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (35) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (36) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) R is empty. The argument filtering Pi contains the following mapping: zero = zero succ(x1) = succ(x1) pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (37) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (39) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (40) YES ---------------------------------------- (41) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (42) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (43) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (44) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (45) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (46) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (47) YES ---------------------------------------- (48) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (49) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (50) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (51) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (53) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (54) YES ---------------------------------------- (55) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (56) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (57) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (58) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (59) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (60) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (61) YES ---------------------------------------- (62) Obligation: Pi DP problem: The TRS P consists of the following rules: ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (63) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (64) Obligation: Pi DP problem: The TRS P consists of the following rules: ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (65) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (67) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (68) YES ---------------------------------------- (69) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_ggg(x1, x2, x3, x4) = U22_ggg(x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg loop2_out_ggg(x1, x2, x3) = loop2_out_ggg U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x4) test_fun_out_gg(x1, x2) = test_fun_out_gg LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x3, x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x3, x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x3, x6) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x4, x5, x6) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x4, x5) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) U22_GGG(x1, x2, x3, x4) = U22_GGG(x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x2, x3, x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) U26_GGG(x1, x2, x3, x4) = U26_GGG(x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x2, x3, x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (70) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (71) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) The TRS R consists of the following rules: =_in_ag(X, X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The argument filtering Pi contains the following mapping: =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) zero = zero isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x3) U63_gg(x1, x2, x3) = U63_gg(x3) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U33_gga(x1, x2, x3) = U33_gga(x3) U34_gga(x1, x2, x3) = U34_gga(x3) U35_gga(x1, x2, x3, x4) = U35_gga(x4) U36_gga(x1, x2, x3, x4) = U36_gga(x4) U37_gga(x1, x2, x3, x4) = U37_gga(x4) U38_gga(x1, x2, x3, x4) = U38_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U29_gga(x1, x2, x3, x4) = U29_gga(x4) U30_gga(x1, x2, x3, x4) = U30_gga(x4) U31_gga(x1, x2, x3, x4) = U31_gga(x4) U32_gga(x1, x2, x3, x4) = U32_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U40_gga(x1, x2, x3, x4) = U40_gga(x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg U29_ggg(x1, x2, x3, x4) = U29_ggg(x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x4) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U64_gg(x1, x2, x3) = U64_gg(x3) U65_gg(x1, x2, x3) = U65_gg(x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x3, x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x3, x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x3, x6) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x4, x5, x6) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x4, x5) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) U22_GGG(x1, x2, x3, x4) = U22_GGG(x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x2, x3, x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) U26_GGG(x1, x2, x3, x4) = U26_GGG(x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x2, x3, x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (72) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (73) Obligation: Q DP problem: The TRS P consists of the following rules: U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_in_ag(zero)) U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_in_ag(succ(zero))) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_in_ag(U)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (74) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_in_ag(zero)) at position [3] we obtained the following new rules [LPAR04]: (U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)),U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero))) ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_in_ag(succ(zero))) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_in_ag(U)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (76) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_in_ag(succ(zero))) at position [2] we obtained the following new rules [LPAR04]: (U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))),U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero)))) ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_in_ag(U)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (78) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) at position [3] we obtained the following new rules [LPAR04]: (LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)),LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X))) ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_in_ag(U)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (80) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) at position [4] we obtained the following new rules [LPAR04]: (U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)),U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y))) ---------------------------------------- (81) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_in_ag(U)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (82) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_in_ag(U)) at position [3] we obtained the following new rules [LPAR04]: (U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)),U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U))) ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (84) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_in_ag(U)) at position [2] we obtained the following new rules [LPAR04]: (U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)),U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U))) ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (86) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) at position [3] we obtained the following new rules [LPAR04]: (LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)),LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X))) ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (88) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) at position [4] we obtained the following new rules [LPAR04]: (U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)),U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y))) ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (90) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_in_ag(U)) at position [2] we obtained the following new rules [LPAR04]: (U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)),U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U))) ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (92) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_in_ag(X)) at position [2] we obtained the following new rules [LPAR04]: (LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)),LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X))) ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (94) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_in_ag(U)) at position [2] we obtained the following new rules [LPAR04]: (U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)),U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U))) ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (96) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_in_ag(succ(zero))) at position [2] we obtained the following new rules [LPAR04]: (U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))),U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero)))) ---------------------------------------- (97) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U62_gg(isGreater_out_gg) -> isGreater_out_gg U63_gg(isGreater_out_gg) -> isGreater_out_gg U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U64_gg(isLess_out_gg) -> isLess_out_gg U65_gg(isLess_out_gg) -> isLess_out_gg U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (98) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (99) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (100) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =_in_ag(x0) ---------------------------------------- (101) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (102) TransformationProof (SOUND) By narrowing [LPAR04] the rule U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) at position [3] we obtained the following new rules [LPAR04]: (U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg),U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg)) ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (104) TransformationProof (SOUND) By narrowing [LPAR04] the rule U3_GGG(X, C, X1, =_out_ag(X2)) -> U7_GGG(X, C, =_in_gg(X1, X2)) at position [2] we obtained the following new rules [LPAR04]: (U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg),U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg)) ---------------------------------------- (105) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (106) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (108) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =_in_gg(x0, x1) ---------------------------------------- (109) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (110) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U3_GGG(X, C, X1, =_out_ag(X2)) -> U4_GGG(X, C, isGreater_in_gg(X1, X2)) we obtained the following new rules [LPAR04]: (U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)),U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero))) ---------------------------------------- (111) Obligation: Q DP problem: The TRS P consists of the following rules: U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (112) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U5_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) we obtained the following new rules [LPAR04]: (U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1),U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1)) ---------------------------------------- (113) Obligation: Q DP problem: The TRS P consists of the following rules: U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (114) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U12_GGG(X, Y, C, X1, =_out_ag(X2)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) we obtained the following new rules [LPAR04]: (U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)),U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1))) ---------------------------------------- (115) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (116) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U15_GGG(X, C, U, =_out_ag(Y1)) -> U16_GGG(X, U, Y1, isPlus_in_ggg(C, succ(zero), U)) we obtained the following new rules [LPAR04]: (U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)),U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2))) ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (118) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U20_GGG(X, Y, C, X2, =_out_ag(X3)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) we obtained the following new rules [LPAR04]: (U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)),U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1))) ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)) U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (120) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U8_GGG(X, C, =_out_ag(Y1)) -> LOOP2_IN_GGG(X, Y1, C) we obtained the following new rules [LPAR04]: (U8_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1),U8_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1)) ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)) U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) U8_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (122) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U2_GGG(X, C, =_out_ag(X1)) -> U3_GGG(X, C, X1, =_out_ag(zero)) we obtained the following new rules [LPAR04]: (U2_GGG(z0, z2, =_out_ag(z0)) -> U3_GGG(z0, z2, z0, =_out_ag(zero)),U2_GGG(z0, z2, =_out_ag(z0)) -> U3_GGG(z0, z2, z0, =_out_ag(zero))) ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)) U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) U8_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U2_GGG(z0, z2, =_out_ag(z0)) -> U3_GGG(z0, z2, z0, =_out_ag(zero)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (124) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U11_GGG(X, Y, C, =_out_ag(X1)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y)) we obtained the following new rules [LPAR04]: (U11_GGG(z0, z1, z2, =_out_ag(z0)) -> U12_GGG(z0, z1, z2, z0, =_out_ag(z1)),U11_GGG(z0, z1, z2, =_out_ag(z0)) -> U12_GGG(z0, z1, z2, z0, =_out_ag(z1))) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)) U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) U8_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U2_GGG(z0, z2, =_out_ag(z0)) -> U3_GGG(z0, z2, z0, =_out_ag(zero)) U11_GGG(z0, z1, z2, =_out_ag(z0)) -> U12_GGG(z0, z1, z2, z0, =_out_ag(z1)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (126) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U16_GGG(X, U, Y1, isPlus_out_ggg) -> U17_GGG(X, Y1, =_out_ag(U)) we obtained the following new rules [LPAR04]: (U16_GGG(z0, z2, z2, isPlus_out_ggg) -> U17_GGG(z0, z2, =_out_ag(z2)),U16_GGG(z0, z2, z2, isPlus_out_ggg) -> U17_GGG(z0, z2, =_out_ag(z2))) ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg) -> U14_GGG(X, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y1, =_out_ag(C1)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg) -> U22_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U25_GGG(X, Y, C, isLess_out_gg) -> U26_GGG(Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(Y, C, =_out_ag(X1)) -> LOOP1_IN_GGG(X1, Y, C) U4_GGG(X, C, isGreater_out_gg) -> U5_GGG(X, C, =_out_ag(succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X)) U14_GGG(X, C, isTimes_out_gga(U)) -> U15_GGG(X, C, U, =_out_ag(U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y)) U22_GGG(Y, C, isMinus_out_gga(U)) -> U23_GGG(Y, C, =_out_ag(U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, C, =_out_ag(X)) U26_GGG(Y, C, isMinus_out_gga(U)) -> U27_GGG(Y, C, =_out_ag(U)) U7_GGG(X, C, =_out_gg) -> U8_GGG(X, C, =_out_ag(succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0)) -> U21_GGG(y0, y1, y2, =_out_gg) U3_GGG(y0, y1, x0, =_out_ag(x0)) -> U7_GGG(y0, y1, =_out_gg) U3_GGG(z0, z1, z2, =_out_ag(zero)) -> U4_GGG(z0, z1, isGreater_in_gg(z2, zero)) U5_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U12_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, =_out_ag(z2)) -> U16_GGG(z0, z2, z2, isPlus_in_ggg(z1, succ(zero), z2)) U20_GGG(z0, z1, z2, z3, =_out_ag(z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) U8_GGG(z0, z1, =_out_ag(succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z1) U2_GGG(z0, z2, =_out_ag(z0)) -> U3_GGG(z0, z2, z0, =_out_ag(zero)) U11_GGG(z0, z1, z2, =_out_ag(z0)) -> U12_GGG(z0, z1, z2, z0, =_out_ag(z1)) U16_GGG(z0, z2, z2, isPlus_out_ggg) -> U17_GGG(z0, z2, =_out_ag(z2)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(isMinus_in_gga(X, Y)) U37_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U38_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U36_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U34_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) U35_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U33_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg isLess_in_gg(pred(X), pred(Y)) -> U64_gg(isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg isLess_in_gg(succ(X), succ(Y)) -> U65_gg(isLess_in_gg(X, Y)) U65_gg(isLess_out_gg) -> isLess_out_gg U64_gg(isLess_out_gg) -> isLess_out_gg isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(isPlus_in_ggg(X, Y, Z)) U31_ggg(isPlus_out_ggg) -> isPlus_out_ggg U32_ggg(isPlus_out_ggg) -> isPlus_out_ggg U30_ggg(isPlus_out_ggg) -> isPlus_out_ggg U29_ggg(isPlus_out_ggg) -> isPlus_out_ggg isTimes_in_gga(X, zero) -> isTimes_out_gga(zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, isTimes_in_gga(succ(X), Y)) U41_gga(X, isTimes_out_gga(A)) -> U42_gga(isMinus_in_gga(A, succ(X))) U42_gga(isMinus_out_gga(Z)) -> isTimes_out_gga(Z) U39_gga(X, isTimes_out_gga(A)) -> U40_gga(isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(isPlus_in_gga(X, Y)) U40_gga(isPlus_out_gga(Z)) -> isTimes_out_gga(Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(isPlus_in_gga(X, Y)) U31_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U32_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(pred(pred(Z))) U30_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(Z) U29_gga(isPlus_out_gga(Z)) -> isPlus_out_gga(succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(isGreater_in_gg(X, Y)) U63_gg(isGreater_out_gg) -> isGreater_out_gg U62_gg(isGreater_out_gg) -> isGreater_out_gg The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0) U63_gg(x0) U39_gga(x0, x1) U41_gga(x0, x1) U29_ggg(x0) U31_ggg(x0) U33_gga(x0) U35_gga(x0) U37_gga(x0) U64_gg(x0) U65_gg(x0) U40_gga(x0) U42_gga(x0) isPlus_in_gga(x0, x1) U30_ggg(x0) U32_ggg(x0) U34_gga(x0) U36_gga(x0) U38_gga(x0) U29_gga(x0) U31_gga(x0) U30_gga(x0) U32_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (128) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: test_fun_in_2: (b,b) loop1_in_3: (b,b,b) isGreater_in_2: (b,b) loop2_in_3: (b,b,b) isTimes_in_3: (b,b,f) isMinus_in_3: (b,b,f) isPlus_in_3: (b,b,f) (b,b,b) isLess_in_2: (b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (129) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ---------------------------------------- (130) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, zero)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, zero) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) LOOP1_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U62_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(pred(X), pred(Y)) -> U63_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) LOOP2_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> ISTIMES_IN_GGA(succ(succ(zero)), Y, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U39_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U41_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U43_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U33_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U34_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U35_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U37_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U38_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U29_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U30_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U31_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U32_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> =_IN_AG(Y1, U) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> ISPLUS_IN_GGG(C, succ(zero), U) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U29_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U30_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U31_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U32_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> =_IN_AG(C1, U) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_GGG(X, Y, C, loop2_in_ggg(X, Y1, C1)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> =_IN_AG(X3, Y) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> =_IN_GG(X2, X3) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> U24_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> ISLESS_IN_GG(X2, X3) ISLESS_IN_GG(pred(X), pred(Y)) -> U64_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(succ(X), succ(Y)) -> U65_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> U28_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> =_IN_GG(X1, X2) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_GGG(X, Y, C, isLess_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISLESS_IN_GG(X1, X2) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x2, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U62_GG(x1, x2, x3) = U62_GG(x1, x2, x3) U63_GG(x1, x2, x3) = U63_GG(x1, x2, x3) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) U6_GGG(x1, x2, x3, x4) = U6_GGG(x1, x2, x3, x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x2, x3, x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U39_GGA(x1, x2, x3, x4) = U39_GGA(x1, x2, x4) U41_GGA(x1, x2, x3, x4) = U41_GGA(x1, x2, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x2, x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x2, x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x2, x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U33_GGA(x1, x2, x3) = U33_GGA(x1, x3) U34_GGA(x1, x2, x3) = U34_GGA(x1, x3) U35_GGA(x1, x2, x3, x4) = U35_GGA(x1, x2, x4) U36_GGA(x1, x2, x3, x4) = U36_GGA(x1, x2, x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x1, x2, x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x1, x2, x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x1, x2, x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U29_GGA(x1, x2, x3, x4) = U29_GGA(x1, x2, x4) U30_GGA(x1, x2, x3, x4) = U30_GGA(x1, x2, x4) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4) = U32_GGA(x1, x2, x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x1, x2, x4) U40_GGA(x1, x2, x3, x4) = U40_GGA(x1, x2, x4) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x2, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x2, x3, x4, x5, x6) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U29_GGG(x1, x2, x3, x4) = U29_GGG(x1, x2, x3, x4) U30_GGG(x1, x2, x3, x4) = U30_GGG(x1, x2, x3, x4) U31_GGG(x1, x2, x3, x4) = U31_GGG(x1, x2, x3, x4) U32_GGG(x1, x2, x3, x4) = U32_GGG(x1, x2, x3, x4) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x2, x3, x4, x5) U18_GGG(x1, x2, x3, x4) = U18_GGG(x1, x2, x3, x4) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGG(x1, x2, x3, x4) = U22_GGG(x1, x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x1, x2, x3, x4) U24_GGG(x1, x2, x3, x4) = U24_GGG(x1, x2, x3, x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U64_GG(x1, x2, x3) = U64_GG(x1, x2, x3) U65_GG(x1, x2, x3) = U65_GG(x1, x2, x3) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x1, x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x1, x2, x3, x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x2, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x2, x3, x4) U9_GGG(x1, x2, x3, x4) = U9_GGG(x1, x2, x3, x4) U10_GGG(x1, x2, x3, x4) = U10_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (131) Obligation: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, zero)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, zero) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) LOOP1_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U62_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(pred(X), pred(Y)) -> U63_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) LOOP2_IN_GGG(X, Y, C) -> =_IN_AG(X1, X) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> ISTIMES_IN_GGA(succ(succ(zero)), Y, U) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U39_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> U41_GGA(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> U43_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> U45_GGA(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U33_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> U34_GGA(Y, Z, isMinus_in_gga(zero, Y, Z)) ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> U35_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> U36_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> U37_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> U38_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U43_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISPLUS_IN_GGA(A, pred(X), Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U29_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> U30_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> U31_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> U32_GGA(X, Y, Z, isPlus_in_gga(X, Y, Z)) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U41_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U39_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> =_IN_AG(Y1, U) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> ISPLUS_IN_GGG(C, succ(zero), U) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> U29_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> U30_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> U31_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> U32_GGG(X, Y, Z, isPlus_in_ggg(X, Y, Z)) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> =_IN_AG(C1, U) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_GGG(X, Y, C, loop2_in_ggg(X, Y1, C1)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> =_IN_AG(X3, Y) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> =_IN_GG(X2, X3) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> U24_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> ISLESS_IN_GG(X2, X3) ISLESS_IN_GG(pred(X), pred(Y)) -> U64_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(succ(X), succ(Y)) -> U65_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> ISMINUS_IN_GGA(X, succ(zero), U) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> =_IN_AG(X1, U) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> U28_GGG(X, Y, C, loop1_in_ggg(X1, Y, C)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> =_IN_GG(X1, X2) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> =_IN_AG(Y1, succ(zero)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_GGG(X, Y, C, loop2_in_ggg(X, Y1, C)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_GGG(X, Y, C, isLess_in_gg(X1, X2)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> ISLESS_IN_GG(X1, X2) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x2, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U62_GG(x1, x2, x3) = U62_GG(x1, x2, x3) U63_GG(x1, x2, x3) = U63_GG(x1, x2, x3) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) U6_GGG(x1, x2, x3, x4) = U6_GGG(x1, x2, x3, x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x2, x3, x6) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U39_GGA(x1, x2, x3, x4) = U39_GGA(x1, x2, x4) U41_GGA(x1, x2, x3, x4) = U41_GGA(x1, x2, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x2, x4) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x2, x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x2, x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U33_GGA(x1, x2, x3) = U33_GGA(x1, x3) U34_GGA(x1, x2, x3) = U34_GGA(x1, x3) U35_GGA(x1, x2, x3, x4) = U35_GGA(x1, x2, x4) U36_GGA(x1, x2, x3, x4) = U36_GGA(x1, x2, x4) U37_GGA(x1, x2, x3, x4) = U37_GGA(x1, x2, x4) U38_GGA(x1, x2, x3, x4) = U38_GGA(x1, x2, x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x1, x2, x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U29_GGA(x1, x2, x3, x4) = U29_GGA(x1, x2, x4) U30_GGA(x1, x2, x3, x4) = U30_GGA(x1, x2, x4) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4) = U32_GGA(x1, x2, x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x1, x2, x4) U40_GGA(x1, x2, x3, x4) = U40_GGA(x1, x2, x4) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x2, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x2, x3, x4, x5, x6) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) U29_GGG(x1, x2, x3, x4) = U29_GGG(x1, x2, x3, x4) U30_GGG(x1, x2, x3, x4) = U30_GGG(x1, x2, x3, x4) U31_GGG(x1, x2, x3, x4) = U31_GGG(x1, x2, x3, x4) U32_GGG(x1, x2, x3, x4) = U32_GGG(x1, x2, x3, x4) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x2, x3, x4, x5) U18_GGG(x1, x2, x3, x4) = U18_GGG(x1, x2, x3, x4) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGG(x1, x2, x3, x4) = U22_GGG(x1, x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x1, x2, x3, x4) U24_GGG(x1, x2, x3, x4) = U24_GGG(x1, x2, x3, x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U64_GG(x1, x2, x3) = U64_GG(x1, x2, x3) U65_GG(x1, x2, x3) = U65_GG(x1, x2, x3) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x1, x2, x3, x4) U28_GGG(x1, x2, x3, x4) = U28_GGG(x1, x2, x3, x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x2, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x2, x3, x4) U9_GGG(x1, x2, x3, x4) = U9_GGG(x1, x2, x3, x4) U10_GGG(x1, x2, x3, x4) = U10_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (132) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 9 SCCs with 59 less nodes. ---------------------------------------- (133) Complex Obligation (AND) ---------------------------------------- (134) Obligation: Pi DP problem: The TRS P consists of the following rules: ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (135) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (136) Obligation: Pi DP problem: The TRS P consists of the following rules: ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (137) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (139) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISLESS_IN_GG(pred(X), pred(Y)) -> ISLESS_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (140) YES ---------------------------------------- (141) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISPLUS_IN_GGG(x1, x2, x3) = ISPLUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (142) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (143) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (144) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (146) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGG(succ(X), pred(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 *ISPLUS_IN_GGG(pred(X), succ(Y), Z) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 *ISPLUS_IN_GGG(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGG(X, Y, Z) The graph contains the following edges 1 > 1, 2 > 2, 3 > 3 ---------------------------------------- (147) YES ---------------------------------------- (148) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (149) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (150) Obligation: Pi DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), succ(Y), Z) -> ISPLUS_IN_GGA(X, Y, Z) ISPLUS_IN_GGA(pred(X), pred(Y), pred(pred(Z))) -> ISPLUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (151) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (152) Obligation: Q DP problem: The TRS P consists of the following rules: ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (153) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISPLUS_IN_GGA(succ(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(succ(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), succ(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISPLUS_IN_GGA(pred(X), pred(Y)) -> ISPLUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (154) YES ---------------------------------------- (155) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (156) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (157) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGA(zero, Y, Z) R is empty. The argument filtering Pi contains the following mapping: zero = zero succ(x1) = succ(x1) pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (158) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (159) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (160) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(zero, pred(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISMINUS_IN_GGA(zero, succ(Y)) -> ISMINUS_IN_GGA(zero, Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (161) YES ---------------------------------------- (162) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (163) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (164) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(succ(X), succ(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGA(X, Y, Z) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (165) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (167) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISMINUS_IN_GGA(succ(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(succ(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), succ(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISMINUS_IN_GGA(pred(X), pred(Y)) -> ISMINUS_IN_GGA(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (168) YES ---------------------------------------- (169) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (170) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (171) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) ISTIMES_IN_GGA(pred(X), succ(Y), Z) -> ISTIMES_IN_GGA(pred(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (172) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (173) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (174) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(pred(X), pred(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(pred(X), succ(Y)) -> ISTIMES_IN_GGA(pred(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (175) YES ---------------------------------------- (176) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (177) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (178) Obligation: Pi DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> ISTIMES_IN_GGA(succ(X), Y, A) R is empty. The argument filtering Pi contains the following mapping: succ(x1) = succ(x1) pred(x1) = pred(x1) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (179) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (180) Obligation: Q DP problem: The TRS P consists of the following rules: ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (181) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISTIMES_IN_GGA(succ(X), pred(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 *ISTIMES_IN_GGA(succ(X), succ(Y)) -> ISTIMES_IN_GGA(succ(X), Y) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (182) YES ---------------------------------------- (183) Obligation: Pi DP problem: The TRS P consists of the following rules: ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (184) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (185) Obligation: Pi DP problem: The TRS P consists of the following rules: ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (186) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (187) Obligation: Q DP problem: The TRS P consists of the following rules: ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (188) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 *ISGREATER_IN_GG(succ(X), succ(Y)) -> ISGREATER_IN_GG(X, Y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (189) YES ---------------------------------------- (190) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, zero)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U2_ggg(X, Y, C, =_out_ag(X1, X)) -> U3_ggg(X, Y, C, X1, =_in_ag(X2, zero)) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_ggg(X, Y, C, isGreater_in_gg(X1, X2)) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U4_ggg(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U5_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U6_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) loop2_in_ggg(X, Y, C) -> U11_ggg(X, Y, C, =_in_ag(X1, X)) U11_ggg(X, Y, C, =_out_ag(X1, X)) -> U12_ggg(X, Y, C, X1, =_in_ag(X2, Y)) U12_ggg(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_ggg(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_ggg(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_ggg(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(zero, succ(Y), zero) -> isTimes_out_gga(zero, succ(Y), zero) isTimes_in_gga(zero, pred(Y), zero) -> isTimes_out_gga(zero, pred(Y), zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U43_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U45_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U45_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U46_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U46_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U44_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U44_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U14_ggg(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_ggg(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_ggg(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_ggg(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U16_ggg(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_ggg(X, Y, C, Y1, =_in_ag(C1, U)) U17_ggg(X, Y, C, Y1, =_out_ag(C1, U)) -> U18_ggg(X, Y, C, loop2_in_ggg(X, Y1, C1)) loop2_in_ggg(X, Y, C) -> U19_ggg(X, Y, C, =_in_ag(X2, X)) U19_ggg(X, Y, C, =_out_ag(X2, X)) -> U20_ggg(X, Y, C, X2, =_in_ag(X3, Y)) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_ggg(X, Y, C, X2, X3, =_in_gg(X2, X3)) =_in_gg(X, X) -> =_out_gg(X, X) U21_ggg(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_ggg(X, Y, C, =_in_ag(X1, U)) U23_ggg(X, Y, C, =_out_ag(X1, U)) -> U24_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U24_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U20_ggg(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_ggg(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U25_ggg(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_ggg(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_ggg(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_ggg(X, Y, C, =_in_ag(X1, U)) U27_ggg(X, Y, C, =_out_ag(X1, U)) -> U28_ggg(X, Y, C, loop1_in_ggg(X1, Y, C)) U28_ggg(X, Y, C, loop1_out_ggg(X1, Y, C)) -> loop2_out_ggg(X, Y, C) U18_ggg(X, Y, C, loop2_out_ggg(X, Y1, C1)) -> loop2_out_ggg(X, Y, C) U6_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_ggg(X, Y, C, =_in_gg(X1, X2)) U7_ggg(X, Y, C, =_out_gg(X1, X2)) -> U8_ggg(X, Y, C, =_in_ag(Y1, succ(zero))) U8_ggg(X, Y, C, =_out_ag(Y1, succ(zero))) -> U9_ggg(X, Y, C, loop2_in_ggg(X, Y1, C)) U9_ggg(X, Y, C, loop2_out_ggg(X, Y1, C)) -> loop1_out_ggg(X, Y, C) U3_ggg(X, Y, C, X1, =_out_ag(X2, zero)) -> U10_ggg(X, Y, C, isLess_in_gg(X1, X2)) U10_ggg(X, Y, C, isLess_out_gg(X1, X2)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, zero)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U3_ggg(x1, x2, x3, x4, x5) = U3_ggg(x1, x2, x3, x4, x5) zero = zero U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) U6_ggg(x1, x2, x3, x4) = U6_ggg(x1, x2, x3, x4) loop2_in_ggg(x1, x2, x3) = loop2_in_ggg(x1, x2, x3) U11_ggg(x1, x2, x3, x4) = U11_ggg(x1, x2, x3, x4) U12_ggg(x1, x2, x3, x4, x5) = U12_ggg(x1, x2, x3, x4, x5) U13_ggg(x1, x2, x3, x4, x5, x6) = U13_ggg(x1, x2, x3, x6) U14_ggg(x1, x2, x3, x4, x5, x6) = U14_ggg(x1, x2, x3, x6) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) U15_ggg(x1, x2, x3, x4, x5, x6, x7) = U15_ggg(x1, x2, x3, x6, x7) U16_ggg(x1, x2, x3, x4, x5, x6) = U16_ggg(x1, x2, x3, x4, x5, x6) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) U17_ggg(x1, x2, x3, x4, x5) = U17_ggg(x1, x2, x3, x4, x5) U18_ggg(x1, x2, x3, x4) = U18_ggg(x1, x2, x3, x4) U19_ggg(x1, x2, x3, x4) = U19_ggg(x1, x2, x3, x4) U20_ggg(x1, x2, x3, x4, x5) = U20_ggg(x1, x2, x3, x4, x5) U21_ggg(x1, x2, x3, x4, x5, x6) = U21_ggg(x1, x2, x3, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_ggg(x1, x2, x3, x4) = U22_ggg(x1, x2, x3, x4) U23_ggg(x1, x2, x3, x4) = U23_ggg(x1, x2, x3, x4) U24_ggg(x1, x2, x3, x4) = U24_ggg(x1, x2, x3, x4) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) loop2_out_ggg(x1, x2, x3) = loop2_out_ggg(x1, x2, x3) U25_ggg(x1, x2, x3, x4, x5, x6) = U25_ggg(x1, x2, x3, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) U26_ggg(x1, x2, x3, x4) = U26_ggg(x1, x2, x3, x4) U27_ggg(x1, x2, x3, x4) = U27_ggg(x1, x2, x3, x4) U28_ggg(x1, x2, x3, x4) = U28_ggg(x1, x2, x3, x4) U7_ggg(x1, x2, x3, x4) = U7_ggg(x1, x2, x3, x4) U8_ggg(x1, x2, x3, x4) = U8_ggg(x1, x2, x3, x4) U9_ggg(x1, x2, x3, x4) = U9_ggg(x1, x2, x3, x4) U10_ggg(x1, x2, x3, x4) = U10_ggg(x1, x2, x3, x4) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x2, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x2, x3, x6) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x2, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x2, x3, x4, x5, x6) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x2, x3, x4, x5) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) U22_GGG(x1, x2, x3, x4) = U22_GGG(x1, x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x1, x2, x3, x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x1, x2, x3, x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x2, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (191) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (192) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(X2, zero)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X1, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(X2, Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, X1, X2, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, X1, X2, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, X1, X2, isTimes_in_gga(succ(succ(zero)), Y, U)) U14_GGG(X, Y, C, X1, X2, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, X1, X2, U, =_in_ag(Y1, U)) U15_GGG(X, Y, C, X1, X2, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(C1, U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X2, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(X3, Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, X2, X3, =_in_gg(X2, X3)) U21_GGG(X, Y, C, X2, X3, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(X1, U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X1, X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, X2, X3, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, X2, X3, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero), U)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(X1, U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(Y1, succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) The TRS R consists of the following rules: =_in_ag(X, X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y), Z) -> U39_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U41_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U33_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U35_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U37_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U41_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U34_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U36_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U38_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U29_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U31_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y), Z) -> U30_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U32_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U30_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The argument filtering Pi contains the following mapping: =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) zero = zero isGreater_in_gg(x1, x2) = isGreater_in_gg(x1, x2) succ(x1) = succ(x1) isGreater_out_gg(x1, x2) = isGreater_out_gg(x1, x2) pred(x1) = pred(x1) U62_gg(x1, x2, x3) = U62_gg(x1, x2, x3) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U39_gga(x1, x2, x3, x4) = U39_gga(x1, x2, x4) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U33_gga(x1, x2, x3) = U33_gga(x1, x3) U34_gga(x1, x2, x3) = U34_gga(x1, x3) U35_gga(x1, x2, x3, x4) = U35_gga(x1, x2, x4) U36_gga(x1, x2, x3, x4) = U36_gga(x1, x2, x4) U37_gga(x1, x2, x3, x4) = U37_gga(x1, x2, x4) U38_gga(x1, x2, x3, x4) = U38_gga(x1, x2, x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x1, x2, x3) U29_gga(x1, x2, x3, x4) = U29_gga(x1, x2, x4) U30_gga(x1, x2, x3, x4) = U30_gga(x1, x2, x4) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4) = U32_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U40_gga(x1, x2, x3, x4) = U40_gga(x1, x2, x4) isPlus_in_ggg(x1, x2, x3) = isPlus_in_ggg(x1, x2, x3) isPlus_out_ggg(x1, x2, x3) = isPlus_out_ggg(x1, x2, x3) U29_ggg(x1, x2, x3, x4) = U29_ggg(x1, x2, x3, x4) U30_ggg(x1, x2, x3, x4) = U30_ggg(x1, x2, x3, x4) U31_ggg(x1, x2, x3, x4) = U31_ggg(x1, x2, x3, x4) U32_ggg(x1, x2, x3, x4) = U32_ggg(x1, x2, x3, x4) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3) = U65_gg(x1, x2, x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) U3_GGG(x1, x2, x3, x4, x5) = U3_GGG(x1, x2, x3, x4, x5) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) LOOP2_IN_GGG(x1, x2, x3) = LOOP2_IN_GGG(x1, x2, x3) U11_GGG(x1, x2, x3, x4) = U11_GGG(x1, x2, x3, x4) U12_GGG(x1, x2, x3, x4, x5) = U12_GGG(x1, x2, x3, x4, x5) U13_GGG(x1, x2, x3, x4, x5, x6) = U13_GGG(x1, x2, x3, x6) U14_GGG(x1, x2, x3, x4, x5, x6) = U14_GGG(x1, x2, x3, x6) U15_GGG(x1, x2, x3, x4, x5, x6, x7) = U15_GGG(x1, x2, x3, x6, x7) U16_GGG(x1, x2, x3, x4, x5, x6) = U16_GGG(x1, x2, x3, x4, x5, x6) U17_GGG(x1, x2, x3, x4, x5) = U17_GGG(x1, x2, x3, x4, x5) U19_GGG(x1, x2, x3, x4) = U19_GGG(x1, x2, x3, x4) U20_GGG(x1, x2, x3, x4, x5) = U20_GGG(x1, x2, x3, x4, x5) U21_GGG(x1, x2, x3, x4, x5, x6) = U21_GGG(x1, x2, x3, x6) U22_GGG(x1, x2, x3, x4) = U22_GGG(x1, x2, x3, x4) U23_GGG(x1, x2, x3, x4) = U23_GGG(x1, x2, x3, x4) U25_GGG(x1, x2, x3, x4, x5, x6) = U25_GGG(x1, x2, x3, x6) U26_GGG(x1, x2, x3, x4) = U26_GGG(x1, x2, x3, x4) U27_GGG(x1, x2, x3, x4) = U27_GGG(x1, x2, x3, x4) U7_GGG(x1, x2, x3, x4) = U7_GGG(x1, x2, x3, x4) U8_GGG(x1, x2, x3, x4) = U8_GGG(x1, x2, x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (193) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(zero)) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(succ(zero))) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_in_ag(U)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (195) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_in_ag(zero)) at position [4] we obtained the following new rules [LPAR04]: (U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)),U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero))) ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(succ(zero))) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_in_ag(U)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (197) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_in_ag(succ(zero))) at position [3] we obtained the following new rules [LPAR04]: (U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))),U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero)))) ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_in_ag(U)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (199) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_in_ag(X)) at position [3] we obtained the following new rules [LPAR04]: (LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)),LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X))) ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_in_ag(U)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (201) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_in_ag(Y)) at position [4] we obtained the following new rules [LPAR04]: (U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)),U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y))) ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_in_ag(U)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (203) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_in_ag(U)) at position [4] we obtained the following new rules [LPAR04]: (U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)),U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U))) ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (205) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_in_ag(U)) at position [4] we obtained the following new rules [LPAR04]: (U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)),U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U))) ---------------------------------------- (206) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (207) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_in_ag(X)) at position [3] we obtained the following new rules [LPAR04]: (LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)),LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X))) ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_in_ag(Y)) at position [4] we obtained the following new rules [LPAR04]: (U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)),U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y))) ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_in_ag(U)) at position [3] we obtained the following new rules [LPAR04]: (U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)),U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U))) ---------------------------------------- (212) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (213) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_in_ag(X)) at position [3] we obtained the following new rules [LPAR04]: (LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)),LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X))) ---------------------------------------- (214) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_in_ag(U)) at position [3] we obtained the following new rules [LPAR04]: (U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)),U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U))) ---------------------------------------- (216) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (217) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_in_ag(succ(zero))) at position [3] we obtained the following new rules [LPAR04]: (U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))),U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero)))) ---------------------------------------- (218) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) The TRS R consists of the following rules: =_in_ag(X) -> =_out_ag(X, X) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (219) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (220) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: =_in_ag(x0) isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (221) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =_in_ag(x0) ---------------------------------------- (222) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (223) TransformationProof (SOUND) By narrowing [LPAR04] the rule U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U21_GGG(X, Y, C, =_in_gg(X2, X3)) at position [3] we obtained the following new rules [LPAR04]: (U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)),U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0))) ---------------------------------------- (224) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (225) TransformationProof (SOUND) By narrowing [LPAR04] the rule U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U7_GGG(X, Y, C, =_in_gg(X1, X2)) at position [3] we obtained the following new rules [LPAR04]: (U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)),U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0))) ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) The TRS R consists of the following rules: =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (227) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) =_in_gg(x0, x1) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (229) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =_in_gg(x0, x1) ---------------------------------------- (230) Obligation: Q DP problem: The TRS P consists of the following rules: U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (231) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U3_GGG(X, Y, C, X1, =_out_ag(X2, zero)) -> U4_GGG(X, Y, C, isGreater_in_gg(X1, X2)) we obtained the following new rules [LPAR04]: (U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)),U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero))) ---------------------------------------- (232) Obligation: Q DP problem: The TRS P consists of the following rules: U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (233) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U5_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) we obtained the following new rules [LPAR04]: (U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2),U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2)) ---------------------------------------- (234) Obligation: Q DP problem: The TRS P consists of the following rules: U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (235) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U12_GGG(X, Y, C, X1, =_out_ag(X2, Y)) -> U13_GGG(X, Y, C, isGreater_in_gg(X1, X2)) we obtained the following new rules [LPAR04]: (U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)),U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1))) ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (237) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U15_GGG(X, Y, C, U, =_out_ag(Y1, U)) -> U16_GGG(X, Y, C, U, Y1, isPlus_in_ggg(C, succ(zero), U)) we obtained the following new rules [LPAR04]: (U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)),U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3))) ---------------------------------------- (238) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (239) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U17_GGG(X, Y, C, Y1, =_out_ag(C1, U)) -> LOOP2_IN_GGG(X, Y1, C1) we obtained the following new rules [LPAR04]: (U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3),U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3)) ---------------------------------------- (240) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)) U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (241) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U21_GGG(X, Y, C, =_out_gg(X2, X3)) -> U22_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) we obtained the following new rules [LPAR04]: (U21_GGG(z0, z1, z2, =_out_gg(z3, z3)) -> U22_GGG(z0, z1, z2, isMinus_in_gga(z0, succ(zero))),U21_GGG(z0, z1, z2, =_out_gg(z3, z3)) -> U22_GGG(z0, z1, z2, isMinus_in_gga(z0, succ(zero)))) ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)) U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3) U21_GGG(z0, z1, z2, =_out_gg(z3, z3)) -> U22_GGG(z0, z1, z2, isMinus_in_gga(z0, succ(zero))) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (243) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U23_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) we obtained the following new rules [LPAR04]: (U23_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2),U23_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2)) ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)) U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3) U21_GGG(z0, z1, z2, =_out_gg(z3, z3)) -> U22_GGG(z0, z1, z2, isMinus_in_gga(z0, succ(zero))) U23_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (245) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U20_GGG(X, Y, C, X2, =_out_ag(X3, Y)) -> U25_GGG(X, Y, C, isLess_in_gg(X2, X3)) we obtained the following new rules [LPAR04]: (U20_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)),U20_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1))) ---------------------------------------- (246) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)) U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3) U21_GGG(z0, z1, z2, =_out_gg(z3, z3)) -> U22_GGG(z0, z1, z2, isMinus_in_gga(z0, succ(zero))) U23_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2) U20_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (247) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule U27_GGG(X, Y, C, =_out_ag(X1, U)) -> LOOP1_IN_GGG(X1, Y, C) we obtained the following new rules [LPAR04]: (U27_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2),U27_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2)) ---------------------------------------- (248) Obligation: Q DP problem: The TRS P consists of the following rules: U13_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U14_GGG(X, Y, C, isTimes_in_gga(succ(succ(zero)), Y)) U25_GGG(X, Y, C, isLess_out_gg(X2, X3)) -> U26_GGG(X, Y, C, isMinus_in_gga(X, succ(zero))) U8_GGG(X, Y, C, =_out_ag(Y1, succ(zero))) -> LOOP2_IN_GGG(X, Y1, C) U2_GGG(X, Y, C, =_out_ag(X1, X)) -> U3_GGG(X, Y, C, X1, =_out_ag(zero, zero)) U4_GGG(X, Y, C, isGreater_out_gg(X1, X2)) -> U5_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) LOOP2_IN_GGG(X, Y, C) -> U11_GGG(X, Y, C, =_out_ag(X, X)) U11_GGG(X, Y, C, =_out_ag(X1, X)) -> U12_GGG(X, Y, C, X1, =_out_ag(Y, Y)) U14_GGG(X, Y, C, isTimes_out_gga(succ(succ(zero)), Y, U)) -> U15_GGG(X, Y, C, U, =_out_ag(U, U)) U16_GGG(X, Y, C, U, Y1, isPlus_out_ggg(C, succ(zero), U)) -> U17_GGG(X, Y, C, Y1, =_out_ag(U, U)) LOOP2_IN_GGG(X, Y, C) -> U19_GGG(X, Y, C, =_out_ag(X, X)) U19_GGG(X, Y, C, =_out_ag(X2, X)) -> U20_GGG(X, Y, C, X2, =_out_ag(Y, Y)) U22_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U23_GGG(X, Y, C, =_out_ag(U, U)) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, =_out_ag(X, X)) U26_GGG(X, Y, C, isMinus_out_gga(X, succ(zero), U)) -> U27_GGG(X, Y, C, =_out_ag(U, U)) U7_GGG(X, Y, C, =_out_gg(X1, X2)) -> U8_GGG(X, Y, C, =_out_ag(succ(zero), succ(zero))) U20_GGG(y0, y1, y2, x0, =_out_ag(x0, y1)) -> U21_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(y0, y1, y2, x0, =_out_ag(x0, zero)) -> U7_GGG(y0, y1, y2, =_out_gg(x0, x0)) U3_GGG(z0, z1, z2, z3, =_out_ag(zero, zero)) -> U4_GGG(z0, z1, z2, isGreater_in_gg(z3, zero)) U5_GGG(z0, z1, z2, =_out_ag(succ(zero), succ(zero))) -> LOOP2_IN_GGG(z0, succ(zero), z2) U12_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U13_GGG(z0, z1, z2, isGreater_in_gg(z3, z1)) U15_GGG(z0, z1, z2, z3, =_out_ag(z3, z3)) -> U16_GGG(z0, z1, z2, z3, z3, isPlus_in_ggg(z2, succ(zero), z3)) U17_GGG(z0, z1, z2, z4, =_out_ag(z3, z3)) -> LOOP2_IN_GGG(z0, z4, z3) U21_GGG(z0, z1, z2, =_out_gg(z3, z3)) -> U22_GGG(z0, z1, z2, isMinus_in_gga(z0, succ(zero))) U23_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2) U20_GGG(z0, z1, z2, z3, =_out_ag(z1, z1)) -> U25_GGG(z0, z1, z2, isLess_in_gg(z3, z1)) U27_GGG(z0, z1, z2, =_out_ag(z3, z3)) -> LOOP1_IN_GGG(z3, z1, z2) The TRS R consists of the following rules: isMinus_in_gga(zero, succ(Y)) -> U33_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), succ(Y)) -> U35_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U37_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y)) -> U34_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U36_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U38_gga(X, Y, isMinus_in_gga(X, Y)) U37_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U38_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U36_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U34_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U35_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U33_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) isLess_in_gg(pred(X), zero) -> isLess_out_gg(pred(X), zero) isLess_in_gg(pred(X), succ(Y)) -> isLess_out_gg(pred(X), succ(Y)) isLess_in_gg(pred(X), pred(Y)) -> U64_gg(X, Y, isLess_in_gg(X, Y)) isLess_in_gg(zero, succ(Y)) -> isLess_out_gg(zero, succ(Y)) isLess_in_gg(succ(X), succ(Y)) -> U65_gg(X, Y, isLess_in_gg(X, Y)) U65_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U64_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) isPlus_in_ggg(zero, X, X) -> isPlus_out_ggg(zero, X, X) isPlus_in_ggg(succ(X), succ(Y), succ(succ(Z))) -> U29_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), succ(Y), Z) -> U31_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(succ(X), zero, succ(X)) -> isPlus_out_ggg(succ(X), zero, succ(X)) isPlus_in_ggg(succ(X), pred(Y), Z) -> U30_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) isPlus_in_ggg(pred(X), zero, pred(X)) -> isPlus_out_ggg(pred(X), zero, pred(X)) isPlus_in_ggg(pred(X), pred(Y), pred(pred(Z))) -> U32_ggg(X, Y, Z, isPlus_in_ggg(X, Y, Z)) U31_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), succ(Y), Z) U32_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(pred(X), pred(Y), pred(pred(Z))) U30_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), pred(Y), Z) U29_ggg(X, Y, Z, isPlus_out_ggg(X, Y, Z)) -> isPlus_out_ggg(succ(X), succ(Y), succ(succ(Z))) isTimes_in_gga(X, zero) -> isTimes_out_gga(X, zero, zero) isTimes_in_gga(succ(X), succ(Y)) -> U39_gga(X, Y, isTimes_in_gga(succ(X), Y)) isTimes_in_gga(succ(X), pred(Y)) -> U41_gga(X, Y, isTimes_in_gga(succ(X), Y)) U41_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U42_gga(X, Y, isMinus_in_gga(A, succ(X))) U42_gga(X, Y, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U39_gga(X, Y, isTimes_out_gga(succ(X), Y, A)) -> U40_gga(X, Y, isPlus_in_gga(A, succ(X))) isPlus_in_gga(zero, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y)) -> U29_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), succ(Y)) -> U31_gga(X, Y, isPlus_in_gga(X, Y)) U40_gga(X, Y, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) isPlus_in_gga(succ(X), zero) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y)) -> U30_gga(X, Y, isPlus_in_gga(X, Y)) isPlus_in_gga(pred(X), zero) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y)) -> U32_gga(X, Y, isPlus_in_gga(X, Y)) U31_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U32_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U30_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U29_gga(X, Y, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) isGreater_in_gg(succ(X), zero) -> isGreater_out_gg(succ(X), zero) isGreater_in_gg(succ(X), pred(Y)) -> isGreater_out_gg(succ(X), pred(Y)) isGreater_in_gg(succ(X), succ(Y)) -> U62_gg(X, Y, isGreater_in_gg(X, Y)) isGreater_in_gg(zero, pred(Y)) -> isGreater_out_gg(zero, pred(Y)) isGreater_in_gg(pred(X), pred(Y)) -> U63_gg(X, Y, isGreater_in_gg(X, Y)) U63_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U62_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) The set Q consists of the following terms: isGreater_in_gg(x0, x1) isTimes_in_gga(x0, x1) isPlus_in_ggg(x0, x1, x2) isMinus_in_gga(x0, x1) isLess_in_gg(x0, x1) U62_gg(x0, x1, x2) U63_gg(x0, x1, x2) U39_gga(x0, x1, x2) U41_gga(x0, x1, x2) U29_ggg(x0, x1, x2, x3) U31_ggg(x0, x1, x2, x3) U33_gga(x0, x1) U35_gga(x0, x1, x2) U37_gga(x0, x1, x2) U64_gg(x0, x1, x2) U65_gg(x0, x1, x2) U40_gga(x0, x1, x2) U42_gga(x0, x1, x2) isPlus_in_gga(x0, x1) U30_ggg(x0, x1, x2, x3) U32_ggg(x0, x1, x2, x3) U34_gga(x0, x1) U36_gga(x0, x1, x2) U38_gga(x0, x1, x2) U29_gga(x0, x1, x2) U31_gga(x0, x1, x2) U30_gga(x0, x1, x2) U32_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (249) UndefinedPredicateHandlerProof (SOUND) Added facts for all undefined predicates [PROLOG]. ---------------------------------------- (250) Obligation: Clauses: test_fun(X, Y) :- loop1(X, Y, 0). loop1(X, Y, C) :- ','(>=(X, 0), ','(is(Y1, 1), loop2(X, Y1, C))). loop1(X, Y, C) :- <(X, 0). loop2(X, Y, C) :- ','(>(X, Y), ','(is(Y1, *(2, Y)), ','(is(C1, +(C, 1)), loop2(X, Y1, C1)))). loop2(X, Y, C) :- ','(=<(X, Y), ','(is(X1, -(X, 1)), loop1(X1, Y, C))). >=(X0, X1). is(X0, X1). <(X0, X1). >(X0, X1). =<(X0, X1). Query: test_fun(g,g) ---------------------------------------- (251) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: test_fun_in_2: (b,b) loop1_in_3: (b,b,b) (f,f,f) (f,f,b) loop2_in_3: (b,f,b) (b,f,f) (f,f,f) (f,f,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (252) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) ---------------------------------------- (253) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, 0)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, 0) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, >=_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> >=_IN_GG(X, 0) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> U3_GGG(X, Y, C, is_in_ag(Y1, 1)) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> IS_IN_AG(Y1, 1) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> U4_GGG(X, Y, C, loop2_in_gag(X, Y1, C)) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_GAG(X, Y1, C) LOOP2_IN_GAG(X, Y, C) -> U6_GAG(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> >_IN_GA(X, Y) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> U7_GAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAG(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> >_IN_GA(X, Y) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAA(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U10_GAA(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> =<_IN_GA(X, Y) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> U11_GAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> >=_IN_AG(X, 0) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAA(X, Y, C, loop2_in_aaa(X, Y1, C)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> >_IN_AA(X, Y) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAA(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> =<_IN_AA(X, Y) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U5_AAA(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> <_IN_AG(X, 0) LOOP2_IN_GAG(X, Y, C) -> U10_GAG(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> =<_IN_GA(X, Y) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> U11_GAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> >=_IN_AG(X, 0) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAG(X, Y, C, loop2_in_aag(X, Y1, C)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) LOOP2_IN_AAG(X, Y, C) -> U6_AAG(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> >_IN_AA(X, Y) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> U7_AAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAG(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> =<_IN_AA(X, Y) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U5_AAG(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> <_IN_AG(X, 0) LOOP1_IN_GGG(X, Y, C) -> U5_GGG(X, Y, C, <_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> <_IN_GG(X, 0) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x2, x3, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) LOOP2_IN_GAG(x1, x2, x3) = LOOP2_IN_GAG(x1, x3) U6_GAG(x1, x2, x3, x4) = U6_GAG(x1, x3, x4) >_IN_GA(x1, x2) = >_IN_GA(x1) U7_GAG(x1, x2, x3, x4) = U7_GAG(x1, x3, x4) U8_GAG(x1, x2, x3, x4, x5) = U8_GAG(x1, x3, x5) U9_GAG(x1, x2, x3, x4) = U9_GAG(x1, x3, x4) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) U9_GAA(x1, x2, x3, x4) = U9_GAA(x1, x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) =<_IN_GA(x1, x2) = =<_IN_GA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) U4_AAA(x1, x2, x3, x4) = U4_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) >_IN_AA(x1, x2) = >_IN_AA U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) =<_IN_AA(x1, x2) = =<_IN_AA U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U5_AAA(x1, x2, x3, x4) = U5_AAA(x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U10_GAG(x1, x2, x3, x4) = U10_GAG(x1, x3, x4) U11_GAG(x1, x2, x3, x4) = U11_GAG(x1, x3, x4) U12_GAG(x1, x2, x3, x4) = U12_GAG(x1, x3, x4) LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) U4_AAG(x1, x2, x3, x4) = U4_AAG(x3, x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U6_AAG(x1, x2, x3, x4) = U6_AAG(x3, x4) U7_AAG(x1, x2, x3, x4) = U7_AAG(x3, x4) U8_AAG(x1, x2, x3, x4, x5) = U8_AAG(x3, x5) U9_AAG(x1, x2, x3, x4) = U9_AAG(x3, x4) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) U12_AAG(x1, x2, x3, x4) = U12_AAG(x3, x4) U5_AAG(x1, x2, x3, x4) = U5_AAG(x3, x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (254) Obligation: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, 0)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, 0) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, >=_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> >=_IN_GG(X, 0) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> U3_GGG(X, Y, C, is_in_ag(Y1, 1)) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> IS_IN_AG(Y1, 1) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> U4_GGG(X, Y, C, loop2_in_gag(X, Y1, C)) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_GAG(X, Y1, C) LOOP2_IN_GAG(X, Y, C) -> U6_GAG(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> >_IN_GA(X, Y) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> U7_GAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAG(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> >_IN_GA(X, Y) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAA(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U10_GAA(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> =<_IN_GA(X, Y) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> U11_GAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> >=_IN_AG(X, 0) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAA(X, Y, C, loop2_in_aaa(X, Y1, C)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> >_IN_AA(X, Y) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAA(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> =<_IN_AA(X, Y) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U5_AAA(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> <_IN_AG(X, 0) LOOP2_IN_GAG(X, Y, C) -> U10_GAG(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> =<_IN_GA(X, Y) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> U11_GAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> >=_IN_AG(X, 0) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAG(X, Y, C, loop2_in_aag(X, Y1, C)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) LOOP2_IN_AAG(X, Y, C) -> U6_AAG(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> >_IN_AA(X, Y) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> U7_AAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAG(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> =<_IN_AA(X, Y) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U5_AAG(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> <_IN_AG(X, 0) LOOP1_IN_GGG(X, Y, C) -> U5_GGG(X, Y, C, <_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> <_IN_GG(X, 0) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x2, x3, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x2, x3, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U4_GGG(x1, x2, x3, x4) = U4_GGG(x1, x2, x3, x4) LOOP2_IN_GAG(x1, x2, x3) = LOOP2_IN_GAG(x1, x3) U6_GAG(x1, x2, x3, x4) = U6_GAG(x1, x3, x4) >_IN_GA(x1, x2) = >_IN_GA(x1) U7_GAG(x1, x2, x3, x4) = U7_GAG(x1, x3, x4) U8_GAG(x1, x2, x3, x4, x5) = U8_GAG(x1, x3, x5) U9_GAG(x1, x2, x3, x4) = U9_GAG(x1, x3, x4) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) U9_GAA(x1, x2, x3, x4) = U9_GAA(x1, x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) =<_IN_GA(x1, x2) = =<_IN_GA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) U4_AAA(x1, x2, x3, x4) = U4_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) >_IN_AA(x1, x2) = >_IN_AA U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) =<_IN_AA(x1, x2) = =<_IN_AA U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U5_AAA(x1, x2, x3, x4) = U5_AAA(x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U10_GAG(x1, x2, x3, x4) = U10_GAG(x1, x3, x4) U11_GAG(x1, x2, x3, x4) = U11_GAG(x1, x3, x4) U12_GAG(x1, x2, x3, x4) = U12_GAG(x1, x3, x4) LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) U4_AAG(x1, x2, x3, x4) = U4_AAG(x3, x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U6_AAG(x1, x2, x3, x4) = U6_AAG(x3, x4) U7_AAG(x1, x2, x3, x4) = U7_AAG(x3, x4) U8_AAG(x1, x2, x3, x4, x5) = U8_AAG(x3, x5) U9_AAG(x1, x2, x3, x4) = U9_AAG(x3, x4) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) U12_AAG(x1, x2, x3, x4) = U12_AAG(x3, x4) U5_AAG(x1, x2, x3, x4) = U5_AAG(x3, x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x1, x2, x3, x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (255) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 62 less nodes. ---------------------------------------- (256) Complex Obligation (AND) ---------------------------------------- (257) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (258) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (259) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) The TRS R consists of the following rules: is_in_ag(X0, X1) -> is_out_ag(X0, X1) >_in_aa(X0, X1) -> >_out_aa(X0, X1) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 *(x1, x2) = *(x1) 2 = 2 +(x1, x2) = +(x2) -(x1, x2) = -(x2) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (260) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (261) Obligation: Q DP problem: The TRS P consists of the following rules: U2_AAA(>=_out_ag(0)) -> U3_AAA(is_in_ag(1)) U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U6_AAA(>_in_aa) U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) The TRS R consists of the following rules: is_in_ag(X1) -> is_out_ag(X1) >_in_aa -> >_out_aa =<_in_aa -> =<_out_aa >=_in_ag(X1) -> >=_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (262) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_AAA(>=_out_ag(0)) -> U3_AAA(is_in_ag(1)) at position [0] we obtained the following new rules [LPAR04]: (U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)),U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1))) ---------------------------------------- (263) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U6_AAA(>_in_aa) U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) The TRS R consists of the following rules: is_in_ag(X1) -> is_out_ag(X1) >_in_aa -> >_out_aa =<_in_aa -> =<_out_aa >=_in_ag(X1) -> >=_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (264) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_AAA -> U6_AAA(>_in_aa) at position [0] we obtained the following new rules [LPAR04]: (LOOP2_IN_AAA -> U6_AAA(>_out_aa),LOOP2_IN_AAA -> U6_AAA(>_out_aa)) ---------------------------------------- (265) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) The TRS R consists of the following rules: is_in_ag(X1) -> is_out_ag(X1) >_in_aa -> >_out_aa =<_in_aa -> =<_out_aa >=_in_ag(X1) -> >=_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (266) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (267) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (268) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. >_in_aa ---------------------------------------- (269) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (270) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) at position [0] we obtained the following new rules [LPAR04]: (U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))),U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2)))) ---------------------------------------- (271) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (272) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_in_ag(+(1))) at position [0] we obtained the following new rules [LPAR04]: (U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))),U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1)))) ---------------------------------------- (273) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (274) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_AAA -> U10_AAA(=<_in_aa) at position [0] we obtained the following new rules [LPAR04]: (LOOP2_IN_AAA -> U10_AAA(=<_out_aa),LOOP2_IN_AAA -> U10_AAA(=<_out_aa)) ---------------------------------------- (275) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (276) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (277) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (278) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =<_in_aa ---------------------------------------- (279) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (280) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) at position [0] we obtained the following new rules [LPAR04]: (U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))),U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1)))) ---------------------------------------- (281) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) is_in_ag(X1) -> is_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (282) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (283) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) The set Q consists of the following terms: is_in_ag(x0) >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (284) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. is_in_ag(x0) ---------------------------------------- (285) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) The set Q consists of the following terms: >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (286) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) at position [0] we obtained the following new rules [LPAR04]: (LOOP1_IN_AAA -> U2_AAA(>=_out_ag(0)),LOOP1_IN_AAA -> U2_AAA(>=_out_ag(0))) ---------------------------------------- (287) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))) LOOP1_IN_AAA -> U2_AAA(>=_out_ag(0)) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag(X1) The set Q consists of the following terms: >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (288) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (289) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))) LOOP1_IN_AAA -> U2_AAA(>=_out_ag(0)) R is empty. The set Q consists of the following terms: >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (290) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. >=_in_ag(x0) ---------------------------------------- (291) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag(1)) -> LOOP2_IN_AAA U8_AAA(is_out_ag(+(1))) -> LOOP2_IN_AAA U11_AAA(is_out_ag(-(1))) -> LOOP1_IN_AAA U2_AAA(>=_out_ag(0)) -> U3_AAA(is_out_ag(1)) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag(*(2))) U7_AAA(is_out_ag(*(2))) -> U8_AAA(is_out_ag(+(1))) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag(-(1))) LOOP1_IN_AAA -> U2_AAA(>=_out_ag(0)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (292) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (293) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (294) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) The TRS R consists of the following rules: =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) is_in_ag(X0, X1) -> is_out_ag(X0, X1) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 -(x1, x2) = -(x2) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (295) Obligation: Pi DP problem: The TRS P consists of the following rules: U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x2, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x2, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x1, x2, x3, x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x3, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) U7_gag(x1, x2, x3, x4) = U7_gag(x1, x3, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x3, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x1, x3, x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga(x1) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa(x1) loop2_out_gag(x1, x2, x3) = loop2_out_gag(x1, x3) U10_gag(x1, x2, x3, x4) = U10_gag(x1, x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x1, x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x1, x3, x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x3, x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x3, x4) U7_aag(x1, x2, x3, x4) = U7_aag(x3, x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x3, x5) U9_aag(x1, x2, x3, x4) = U9_aag(x3, x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag(x3) U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x3, x4) U5_aag(x1, x2, x3, x4) = U5_aag(x3, x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag(x3) loop1_out_ggg(x1, x2, x3) = loop1_out_ggg(x1, x2, x3) U5_ggg(x1, x2, x3, x4) = U5_ggg(x1, x2, x3, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) test_fun_out_gg(x1, x2) = test_fun_out_gg(x1, x2) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (296) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (297) Obligation: Pi DP problem: The TRS P consists of the following rules: U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) The TRS R consists of the following rules: is_in_ag(X0, X1) -> is_out_ag(X0, X1) >_in_ga(X0, X1) -> >_out_ga(X0, X1) The argument filtering Pi contains the following mapping: is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) 1 = 1 >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga(x1) *(x1, x2) = *(x1) 2 = 2 +(x1, x2) = +(x2) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (298) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: test_fun_in_2: (b,b) loop1_in_3: (b,b,b) (f,f,f) (f,f,b) loop2_in_3: (b,f,b) (b,f,f) (f,f,f) (f,f,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (299) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg ---------------------------------------- (300) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, 0)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, 0) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, >=_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> >=_IN_GG(X, 0) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> U3_GGG(X, Y, C, is_in_ag(Y1, 1)) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> IS_IN_AG(Y1, 1) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> U4_GGG(X, Y, C, loop2_in_gag(X, Y1, C)) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_GAG(X, Y1, C) LOOP2_IN_GAG(X, Y, C) -> U6_GAG(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> >_IN_GA(X, Y) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> U7_GAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAG(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> >_IN_GA(X, Y) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAA(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U10_GAA(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> =<_IN_GA(X, Y) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> U11_GAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> >=_IN_AG(X, 0) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAA(X, Y, C, loop2_in_aaa(X, Y1, C)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> >_IN_AA(X, Y) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAA(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> =<_IN_AA(X, Y) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U5_AAA(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> <_IN_AG(X, 0) LOOP2_IN_GAG(X, Y, C) -> U10_GAG(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> =<_IN_GA(X, Y) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> U11_GAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> >=_IN_AG(X, 0) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAG(X, Y, C, loop2_in_aag(X, Y1, C)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) LOOP2_IN_AAG(X, Y, C) -> U6_AAG(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> >_IN_AA(X, Y) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> U7_AAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAG(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> =<_IN_AA(X, Y) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U5_AAG(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> <_IN_AG(X, 0) LOOP1_IN_GGG(X, Y, C) -> U5_GGG(X, Y, C, <_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> <_IN_GG(X, 0) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x3, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U4_GGG(x1, x2, x3, x4) = U4_GGG(x4) LOOP2_IN_GAG(x1, x2, x3) = LOOP2_IN_GAG(x1, x3) U6_GAG(x1, x2, x3, x4) = U6_GAG(x1, x4) >_IN_GA(x1, x2) = >_IN_GA(x1) U7_GAG(x1, x2, x3, x4) = U7_GAG(x1, x4) U8_GAG(x1, x2, x3, x4, x5) = U8_GAG(x1, x5) U9_GAG(x1, x2, x3, x4) = U9_GAG(x4) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) U9_GAA(x1, x2, x3, x4) = U9_GAA(x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x4) =<_IN_GA(x1, x2) = =<_IN_GA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x4) LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) U4_AAA(x1, x2, x3, x4) = U4_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) >_IN_AA(x1, x2) = >_IN_AA U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) =<_IN_AA(x1, x2) = =<_IN_AA U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U5_AAA(x1, x2, x3, x4) = U5_AAA(x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U10_GAG(x1, x2, x3, x4) = U10_GAG(x3, x4) U11_GAG(x1, x2, x3, x4) = U11_GAG(x3, x4) U12_GAG(x1, x2, x3, x4) = U12_GAG(x4) LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) U4_AAG(x1, x2, x3, x4) = U4_AAG(x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U6_AAG(x1, x2, x3, x4) = U6_AAG(x4) U7_AAG(x1, x2, x3, x4) = U7_AAG(x4) U8_AAG(x1, x2, x3, x4, x5) = U8_AAG(x5) U9_AAG(x1, x2, x3, x4) = U9_AAG(x4) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) U12_AAG(x1, x2, x3, x4) = U12_AAG(x4) U5_AAG(x1, x2, x3, x4) = U5_AAG(x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (301) Obligation: Pi DP problem: The TRS P consists of the following rules: TEST_FUN_IN_GG(X, Y) -> U1_GG(X, Y, loop1_in_ggg(X, Y, 0)) TEST_FUN_IN_GG(X, Y) -> LOOP1_IN_GGG(X, Y, 0) LOOP1_IN_GGG(X, Y, C) -> U2_GGG(X, Y, C, >=_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> >=_IN_GG(X, 0) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> U3_GGG(X, Y, C, is_in_ag(Y1, 1)) U2_GGG(X, Y, C, >=_out_gg(X, 0)) -> IS_IN_AG(Y1, 1) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> U4_GGG(X, Y, C, loop2_in_gag(X, Y1, C)) U3_GGG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_GAG(X, Y1, C) LOOP2_IN_GAG(X, Y, C) -> U6_GAG(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> >_IN_GA(X, Y) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> U7_GAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAG(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAG(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> >_IN_GA(X, Y) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_GAA(X, Y, C, >_out_ga(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_GAA(X, Y, C, loop2_in_gaa(X, Y1, C1)) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U10_GAA(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAA(X, Y, C) -> =<_IN_GA(X, Y) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> U11_GAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAA(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_GAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> >=_IN_AG(X, 0) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAA(X, Y, C, loop2_in_aaa(X, Y1, C)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> >_IN_AA(X, Y) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAA(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAA(X, Y, C) -> =<_IN_AA(X, Y) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAA(X, Y, C, loop1_in_aaa(X1, Y, C)) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U5_AAA(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAA(X, Y, C) -> <_IN_AG(X, 0) LOOP2_IN_GAG(X, Y, C) -> U10_GAG(X, Y, C, =<_in_ga(X, Y)) LOOP2_IN_GAG(X, Y, C) -> =<_IN_GA(X, Y) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> U11_GAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_GAG(X, Y, C, =<_out_ga(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_GAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_GAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> >=_IN_AG(X, 0) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> IS_IN_AG(Y1, 1) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> U4_AAG(X, Y, C, loop2_in_aag(X, Y1, C)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) LOOP2_IN_AAG(X, Y, C) -> U6_AAG(X, Y, C, >_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> >_IN_AA(X, Y) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> U7_AAG(X, Y, C, is_in_ag(Y1, *(2, Y))) U6_AAG(X, Y, C, >_out_aa(X, Y)) -> IS_IN_AG(Y1, *(2, Y)) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAG(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U7_AAG(X, Y, C, is_out_ag(Y1, *(2, Y))) -> IS_IN_AG(C1, +(C, 1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_AAG(X, Y, C, loop2_in_aaa(X, Y1, C1)) U8_AAG(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) LOOP2_IN_AAG(X, Y, C) -> =<_IN_AA(X, Y) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> IS_IN_AG(X1, -(X, 1)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_AAG(X, Y, C, loop1_in_aag(X1, Y, C)) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U5_AAG(X, Y, C, <_in_ag(X, 0)) LOOP1_IN_AAG(X, Y, C) -> <_IN_AG(X, 0) LOOP1_IN_GGG(X, Y, C) -> U5_GGG(X, Y, C, <_in_gg(X, 0)) LOOP1_IN_GGG(X, Y, C) -> <_IN_GG(X, 0) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg TEST_FUN_IN_GG(x1, x2) = TEST_FUN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x3) LOOP1_IN_GGG(x1, x2, x3) = LOOP1_IN_GGG(x1, x2, x3) U2_GGG(x1, x2, x3, x4) = U2_GGG(x1, x3, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U3_GGG(x1, x2, x3, x4) = U3_GGG(x1, x3, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U4_GGG(x1, x2, x3, x4) = U4_GGG(x4) LOOP2_IN_GAG(x1, x2, x3) = LOOP2_IN_GAG(x1, x3) U6_GAG(x1, x2, x3, x4) = U6_GAG(x1, x4) >_IN_GA(x1, x2) = >_IN_GA(x1) U7_GAG(x1, x2, x3, x4) = U7_GAG(x1, x4) U8_GAG(x1, x2, x3, x4, x5) = U8_GAG(x1, x5) U9_GAG(x1, x2, x3, x4) = U9_GAG(x4) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) U9_GAA(x1, x2, x3, x4) = U9_GAA(x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x4) =<_IN_GA(x1, x2) = =<_IN_GA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x4) LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) U4_AAA(x1, x2, x3, x4) = U4_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) >_IN_AA(x1, x2) = >_IN_AA U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) =<_IN_AA(x1, x2) = =<_IN_AA U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U5_AAA(x1, x2, x3, x4) = U5_AAA(x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U10_GAG(x1, x2, x3, x4) = U10_GAG(x3, x4) U11_GAG(x1, x2, x3, x4) = U11_GAG(x3, x4) U12_GAG(x1, x2, x3, x4) = U12_GAG(x4) LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) U4_AAG(x1, x2, x3, x4) = U4_AAG(x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U6_AAG(x1, x2, x3, x4) = U6_AAG(x4) U7_AAG(x1, x2, x3, x4) = U7_AAG(x4) U8_AAG(x1, x2, x3, x4, x5) = U8_AAG(x5) U9_AAG(x1, x2, x3, x4) = U9_AAG(x4) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) U12_AAG(x1, x2, x3, x4) = U12_AAG(x4) U5_AAG(x1, x2, x3, x4) = U5_AAG(x4) U5_GGG(x1, x2, x3, x4) = U5_GGG(x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (302) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 62 less nodes. ---------------------------------------- (303) Complex Obligation (AND) ---------------------------------------- (304) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (305) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (306) Obligation: Pi DP problem: The TRS P consists of the following rules: U2_AAA(X, Y, C, >=_out_ag(X, 0)) -> U3_AAA(X, Y, C, is_in_ag(Y1, 1)) U3_AAA(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAA(X, Y1, C) LOOP2_IN_AAA(X, Y, C) -> U6_AAA(X, Y, C, >_in_aa(X, Y)) U6_AAA(X, Y, C, >_out_aa(X, Y)) -> U7_AAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_AAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_AAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_AAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_AAA(X, Y1, C1) LOOP2_IN_AAA(X, Y, C) -> U10_AAA(X, Y, C, =<_in_aa(X, Y)) U10_AAA(X, Y, C, =<_out_aa(X, Y)) -> U11_AAA(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAA(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAA(X1, Y, C) LOOP1_IN_AAA(X, Y, C) -> U2_AAA(X, Y, C, >=_in_ag(X, 0)) The TRS R consists of the following rules: is_in_ag(X0, X1) -> is_out_ag(X0, X1) >_in_aa(X0, X1) -> >_out_aa(X0, X1) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 *(x1, x2) = *(x1) 2 = 2 +(x1, x2) = +(x2) -(x1, x2) = -(x2) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa LOOP1_IN_AAA(x1, x2, x3) = LOOP1_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) LOOP2_IN_AAA(x1, x2, x3) = LOOP2_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4, x5) = U8_AAA(x5) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (307) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (308) Obligation: Q DP problem: The TRS P consists of the following rules: U2_AAA(>=_out_ag) -> U3_AAA(is_in_ag(1)) U3_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U6_AAA(>_in_aa) U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) The TRS R consists of the following rules: is_in_ag(X1) -> is_out_ag >_in_aa -> >_out_aa =<_in_aa -> =<_out_aa >=_in_ag(X1) -> >=_out_ag The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (309) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U2_AAA(>=_out_ag) -> U3_AAA(is_in_ag(1)) at position [0] we obtained the following new rules [LPAR04]: (U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag),U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag)) ---------------------------------------- (310) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U6_AAA(>_in_aa) U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) The TRS R consists of the following rules: is_in_ag(X1) -> is_out_ag >_in_aa -> >_out_aa =<_in_aa -> =<_out_aa >=_in_ag(X1) -> >=_out_ag The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (311) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_AAA -> U6_AAA(>_in_aa) at position [0] we obtained the following new rules [LPAR04]: (LOOP2_IN_AAA -> U6_AAA(>_out_aa),LOOP2_IN_AAA -> U6_AAA(>_out_aa)) ---------------------------------------- (312) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) The TRS R consists of the following rules: is_in_ag(X1) -> is_out_ag >_in_aa -> >_out_aa =<_in_aa -> =<_out_aa >=_in_ag(X1) -> >=_out_ag The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (313) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (314) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) >_in_aa =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (315) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. >_in_aa ---------------------------------------- (316) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (317) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U6_AAA(>_out_aa) -> U7_AAA(is_in_ag(*(2))) at position [0] we obtained the following new rules [LPAR04]: (U6_AAA(>_out_aa) -> U7_AAA(is_out_ag),U6_AAA(>_out_aa) -> U7_AAA(is_out_ag)) ---------------------------------------- (318) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (319) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U7_AAA(is_out_ag) -> U8_AAA(is_in_ag(+(1))) at position [0] we obtained the following new rules [LPAR04]: (U7_AAA(is_out_ag) -> U8_AAA(is_out_ag),U7_AAA(is_out_ag) -> U8_AAA(is_out_ag)) ---------------------------------------- (320) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA LOOP2_IN_AAA -> U10_AAA(=<_in_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (321) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP2_IN_AAA -> U10_AAA(=<_in_aa) at position [0] we obtained the following new rules [LPAR04]: (LOOP2_IN_AAA -> U10_AAA(=<_out_aa),LOOP2_IN_AAA -> U10_AAA(=<_out_aa)) ---------------------------------------- (322) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag =<_in_aa -> =<_out_aa The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (323) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (324) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag The set Q consists of the following terms: is_in_ag(x0) =<_in_aa >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (325) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. =<_in_aa ---------------------------------------- (326) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag The set Q consists of the following terms: is_in_ag(x0) >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (327) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U10_AAA(=<_out_aa) -> U11_AAA(is_in_ag(-(1))) at position [0] we obtained the following new rules [LPAR04]: (U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag),U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag)) ---------------------------------------- (328) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag is_in_ag(X1) -> is_out_ag The set Q consists of the following terms: is_in_ag(x0) >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (329) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (330) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag The set Q consists of the following terms: is_in_ag(x0) >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (331) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. is_in_ag(x0) ---------------------------------------- (332) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U11_AAA(is_out_ag) -> LOOP1_IN_AAA LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag The set Q consists of the following terms: >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (333) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule LOOP1_IN_AAA -> U2_AAA(>=_in_ag(0)) at position [0] we obtained the following new rules [LPAR04]: (LOOP1_IN_AAA -> U2_AAA(>=_out_ag),LOOP1_IN_AAA -> U2_AAA(>=_out_ag)) ---------------------------------------- (334) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U11_AAA(is_out_ag) -> LOOP1_IN_AAA U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag) LOOP1_IN_AAA -> U2_AAA(>=_out_ag) The TRS R consists of the following rules: >=_in_ag(X1) -> >=_out_ag The set Q consists of the following terms: >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (335) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (336) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U11_AAA(is_out_ag) -> LOOP1_IN_AAA U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag) LOOP1_IN_AAA -> U2_AAA(>=_out_ag) R is empty. The set Q consists of the following terms: >=_in_ag(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (337) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. >=_in_ag(x0) ---------------------------------------- (338) Obligation: Q DP problem: The TRS P consists of the following rules: U3_AAA(is_out_ag) -> LOOP2_IN_AAA U8_AAA(is_out_ag) -> LOOP2_IN_AAA U11_AAA(is_out_ag) -> LOOP1_IN_AAA U2_AAA(>=_out_ag) -> U3_AAA(is_out_ag) LOOP2_IN_AAA -> U6_AAA(>_out_aa) U6_AAA(>_out_aa) -> U7_AAA(is_out_ag) U7_AAA(is_out_ag) -> U8_AAA(is_out_ag) LOOP2_IN_AAA -> U10_AAA(=<_out_aa) U10_AAA(=<_out_aa) -> U11_AAA(is_out_ag) LOOP1_IN_AAA -> U2_AAA(>=_out_ag) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (339) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (340) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (341) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP2_IN_AAG(X, Y, C) -> U10_AAG(X, Y, C, =<_in_aa(X, Y)) U10_AAG(X, Y, C, =<_out_aa(X, Y)) -> U11_AAG(X, Y, C, is_in_ag(X1, -(X, 1))) U11_AAG(X, Y, C, is_out_ag(X1, -(X, 1))) -> LOOP1_IN_AAG(X1, Y, C) LOOP1_IN_AAG(X, Y, C) -> U2_AAG(X, Y, C, >=_in_ag(X, 0)) U2_AAG(X, Y, C, >=_out_ag(X, 0)) -> U3_AAG(X, Y, C, is_in_ag(Y1, 1)) U3_AAG(X, Y, C, is_out_ag(Y1, 1)) -> LOOP2_IN_AAG(X, Y1, C) The TRS R consists of the following rules: =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) is_in_ag(X0, X1) -> is_out_ag(X0, X1) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 -(x1, x2) = -(x2) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa LOOP1_IN_AAG(x1, x2, x3) = LOOP1_IN_AAG(x3) U2_AAG(x1, x2, x3, x4) = U2_AAG(x3, x4) U3_AAG(x1, x2, x3, x4) = U3_AAG(x3, x4) LOOP2_IN_AAG(x1, x2, x3) = LOOP2_IN_AAG(x3) U10_AAG(x1, x2, x3, x4) = U10_AAG(x3, x4) U11_AAG(x1, x2, x3, x4) = U11_AAG(x3, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (342) Obligation: Pi DP problem: The TRS P consists of the following rules: U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) The TRS R consists of the following rules: test_fun_in_gg(X, Y) -> U1_gg(X, Y, loop1_in_ggg(X, Y, 0)) loop1_in_ggg(X, Y, C) -> U2_ggg(X, Y, C, >=_in_gg(X, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U2_ggg(X, Y, C, >=_out_gg(X, 0)) -> U3_ggg(X, Y, C, is_in_ag(Y1, 1)) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U3_ggg(X, Y, C, is_out_ag(Y1, 1)) -> U4_ggg(X, Y, C, loop2_in_gag(X, Y1, C)) loop2_in_gag(X, Y, C) -> U6_gag(X, Y, C, >_in_ga(X, Y)) >_in_ga(X0, X1) -> >_out_ga(X0, X1) U6_gag(X, Y, C, >_out_ga(X, Y)) -> U7_gag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gag(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U6_gaa(X, Y, C, >_in_ga(X, Y)) U6_gaa(X, Y, C, >_out_ga(X, Y)) -> U7_gaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_gaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_gaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_gaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_gaa(X, Y, C, loop2_in_gaa(X, Y1, C1)) loop2_in_gaa(X, Y, C) -> U10_gaa(X, Y, C, =<_in_ga(X, Y)) =<_in_ga(X0, X1) -> =<_out_ga(X0, X1) U10_gaa(X, Y, C, =<_out_ga(X, Y)) -> U11_gaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U2_aaa(X, Y, C, >=_in_ag(X, 0)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U2_aaa(X, Y, C, >=_out_ag(X, 0)) -> U3_aaa(X, Y, C, is_in_ag(Y1, 1)) U3_aaa(X, Y, C, is_out_ag(Y1, 1)) -> U4_aaa(X, Y, C, loop2_in_aaa(X, Y1, C)) loop2_in_aaa(X, Y, C) -> U6_aaa(X, Y, C, >_in_aa(X, Y)) >_in_aa(X0, X1) -> >_out_aa(X0, X1) U6_aaa(X, Y, C, >_out_aa(X, Y)) -> U7_aaa(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aaa(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aaa(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aaa(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aaa(X, Y, C, loop2_in_aaa(X, Y1, C1)) loop2_in_aaa(X, Y, C) -> U10_aaa(X, Y, C, =<_in_aa(X, Y)) =<_in_aa(X0, X1) -> =<_out_aa(X0, X1) U10_aaa(X, Y, C, =<_out_aa(X, Y)) -> U11_aaa(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aaa(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aaa(X, Y, C, loop1_in_aaa(X1, Y, C)) loop1_in_aaa(X, Y, C) -> U5_aaa(X, Y, C, <_in_ag(X, 0)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U5_aaa(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aaa(X, Y, C) U12_aaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_aaa(X, Y, C) U9_aaa(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aaa(X, Y, C) U4_aaa(X, Y, C, loop2_out_aaa(X, Y1, C)) -> loop1_out_aaa(X, Y, C) U12_gaa(X, Y, C, loop1_out_aaa(X1, Y, C)) -> loop2_out_gaa(X, Y, C) U9_gaa(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gaa(X, Y, C) U9_gag(X, Y, C, loop2_out_gaa(X, Y1, C1)) -> loop2_out_gag(X, Y, C) loop2_in_gag(X, Y, C) -> U10_gag(X, Y, C, =<_in_ga(X, Y)) U10_gag(X, Y, C, =<_out_ga(X, Y)) -> U11_gag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_gag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_gag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U2_aag(X, Y, C, >=_in_ag(X, 0)) U2_aag(X, Y, C, >=_out_ag(X, 0)) -> U3_aag(X, Y, C, is_in_ag(Y1, 1)) U3_aag(X, Y, C, is_out_ag(Y1, 1)) -> U4_aag(X, Y, C, loop2_in_aag(X, Y1, C)) loop2_in_aag(X, Y, C) -> U6_aag(X, Y, C, >_in_aa(X, Y)) U6_aag(X, Y, C, >_out_aa(X, Y)) -> U7_aag(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_aag(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_aag(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_aag(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> U9_aag(X, Y, C, loop2_in_aaa(X, Y1, C1)) U9_aag(X, Y, C, loop2_out_aaa(X, Y1, C1)) -> loop2_out_aag(X, Y, C) loop2_in_aag(X, Y, C) -> U10_aag(X, Y, C, =<_in_aa(X, Y)) U10_aag(X, Y, C, =<_out_aa(X, Y)) -> U11_aag(X, Y, C, is_in_ag(X1, -(X, 1))) U11_aag(X, Y, C, is_out_ag(X1, -(X, 1))) -> U12_aag(X, Y, C, loop1_in_aag(X1, Y, C)) loop1_in_aag(X, Y, C) -> U5_aag(X, Y, C, <_in_ag(X, 0)) U5_aag(X, Y, C, <_out_ag(X, 0)) -> loop1_out_aag(X, Y, C) U12_aag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_aag(X, Y, C) U4_aag(X, Y, C, loop2_out_aag(X, Y1, C)) -> loop1_out_aag(X, Y, C) U12_gag(X, Y, C, loop1_out_aag(X1, Y, C)) -> loop2_out_gag(X, Y, C) U4_ggg(X, Y, C, loop2_out_gag(X, Y1, C)) -> loop1_out_ggg(X, Y, C) loop1_in_ggg(X, Y, C) -> U5_ggg(X, Y, C, <_in_gg(X, 0)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U5_ggg(X, Y, C, <_out_gg(X, 0)) -> loop1_out_ggg(X, Y, C) U1_gg(X, Y, loop1_out_ggg(X, Y, 0)) -> test_fun_out_gg(X, Y) The argument filtering Pi contains the following mapping: test_fun_in_gg(x1, x2) = test_fun_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x3) loop1_in_ggg(x1, x2, x3) = loop1_in_ggg(x1, x2, x3) U2_ggg(x1, x2, x3, x4) = U2_ggg(x1, x3, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U3_ggg(x1, x2, x3, x4) = U3_ggg(x1, x3, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 U4_ggg(x1, x2, x3, x4) = U4_ggg(x4) loop2_in_gag(x1, x2, x3) = loop2_in_gag(x1, x3) U6_gag(x1, x2, x3, x4) = U6_gag(x1, x4) >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga U7_gag(x1, x2, x3, x4) = U7_gag(x1, x4) *(x1, x2) = *(x1) 2 = 2 U8_gag(x1, x2, x3, x4, x5) = U8_gag(x1, x5) +(x1, x2) = +(x2) U9_gag(x1, x2, x3, x4) = U9_gag(x4) loop2_in_gaa(x1, x2, x3) = loop2_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) U8_gaa(x1, x2, x3, x4, x5) = U8_gaa(x1, x5) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) =<_in_ga(x1, x2) = =<_in_ga(x1) =<_out_ga(x1, x2) = =<_out_ga U11_gaa(x1, x2, x3, x4) = U11_gaa(x4) -(x1, x2) = -(x2) U12_gaa(x1, x2, x3, x4) = U12_gaa(x4) loop1_in_aaa(x1, x2, x3) = loop1_in_aaa U2_aaa(x1, x2, x3, x4) = U2_aaa(x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U3_aaa(x1, x2, x3, x4) = U3_aaa(x4) U4_aaa(x1, x2, x3, x4) = U4_aaa(x4) loop2_in_aaa(x1, x2, x3) = loop2_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) >_in_aa(x1, x2) = >_in_aa >_out_aa(x1, x2) = >_out_aa U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) U8_aaa(x1, x2, x3, x4, x5) = U8_aaa(x5) U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) =<_in_aa(x1, x2) = =<_in_aa =<_out_aa(x1, x2) = =<_out_aa U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) U5_aaa(x1, x2, x3, x4) = U5_aaa(x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag loop1_out_aaa(x1, x2, x3) = loop1_out_aaa loop2_out_aaa(x1, x2, x3) = loop2_out_aaa loop2_out_gaa(x1, x2, x3) = loop2_out_gaa loop2_out_gag(x1, x2, x3) = loop2_out_gag U10_gag(x1, x2, x3, x4) = U10_gag(x3, x4) U11_gag(x1, x2, x3, x4) = U11_gag(x3, x4) U12_gag(x1, x2, x3, x4) = U12_gag(x4) loop1_in_aag(x1, x2, x3) = loop1_in_aag(x3) U2_aag(x1, x2, x3, x4) = U2_aag(x3, x4) U3_aag(x1, x2, x3, x4) = U3_aag(x3, x4) U4_aag(x1, x2, x3, x4) = U4_aag(x4) loop2_in_aag(x1, x2, x3) = loop2_in_aag(x3) U6_aag(x1, x2, x3, x4) = U6_aag(x4) U7_aag(x1, x2, x3, x4) = U7_aag(x4) U8_aag(x1, x2, x3, x4, x5) = U8_aag(x5) U9_aag(x1, x2, x3, x4) = U9_aag(x4) loop2_out_aag(x1, x2, x3) = loop2_out_aag U10_aag(x1, x2, x3, x4) = U10_aag(x3, x4) U11_aag(x1, x2, x3, x4) = U11_aag(x3, x4) U12_aag(x1, x2, x3, x4) = U12_aag(x4) U5_aag(x1, x2, x3, x4) = U5_aag(x4) loop1_out_aag(x1, x2, x3) = loop1_out_aag loop1_out_ggg(x1, x2, x3) = loop1_out_ggg U5_ggg(x1, x2, x3, x4) = U5_ggg(x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg test_fun_out_gg(x1, x2) = test_fun_out_gg LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (343) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (344) Obligation: Pi DP problem: The TRS P consists of the following rules: U6_GAA(X, Y, C, >_out_ga(X, Y)) -> U7_GAA(X, Y, C, is_in_ag(Y1, *(2, Y))) U7_GAA(X, Y, C, is_out_ag(Y1, *(2, Y))) -> U8_GAA(X, Y, C, Y1, is_in_ag(C1, +(C, 1))) U8_GAA(X, Y, C, Y1, is_out_ag(C1, +(C, 1))) -> LOOP2_IN_GAA(X, Y1, C1) LOOP2_IN_GAA(X, Y, C) -> U6_GAA(X, Y, C, >_in_ga(X, Y)) The TRS R consists of the following rules: is_in_ag(X0, X1) -> is_out_ag(X0, X1) >_in_ga(X0, X1) -> >_out_ga(X0, X1) The argument filtering Pi contains the following mapping: is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag 1 = 1 >_in_ga(x1, x2) = >_in_ga(x1) >_out_ga(x1, x2) = >_out_ga *(x1, x2) = *(x1) 2 = 2 +(x1, x2) = +(x2) LOOP2_IN_GAA(x1, x2, x3) = LOOP2_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4, x5) = U8_GAA(x1, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (345) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 2, "program": { "directives": [], "clauses": [ [ "(test_fun X Y)", "(loop1 X Y (0))" ], [ "(loop1 X Y C)", "(',' (>= X (0)) (',' (is Y1 (1)) (loop2 X Y1 C)))" ], [ "(loop1 X Y C)", "(< X (0))" ], [ "(loop2 X Y C)", "(',' (> X Y) (',' (is Y1 (* (2) Y)) (',' (is C1 (+ C (1))) (loop2 X Y1 C1))))" ], [ "(loop2 X Y C)", "(',' (=< X Y) (',' (is X1 (- X (1))) (loop1 X1 Y C)))" ] ] }, "graph": { "nodes": { "22": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "2650": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T28 T29) (',' (is X48 (* (2) T29)) (',' (is X49 (+ (0) (1))) (loop2 T28 X48 X49))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T28", "T29" ], "free": [ "X48", "X49" ], "exprvars": [ "T29", "T17", "T28", "T15" ] } }, "3045": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T47 T48) (',' (is X74 (* (2) T48)) (',' (is X75 (+ T49 (1))) (loop2 T47 X74 X75))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T47", "T48", "T49" ], "free": [ "X74", "X75" ], "exprvars": [ "T31", "T47", "T30", "T29", "T17", "T28", "T49", "T15", "T48" ] } }, "type": "Nodes", "3042": { "goal": [{ "clause": 4, "scope": 4, "term": "(loop2 T28 T30 T31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T31", "T30", "T28" ], "free": [], "exprvars": [ "T31", "T30", "T29", "T17", "T28", "T15" ] } }, "3041": { "goal": [{ "clause": 3, "scope": 4, "term": "(loop2 T28 T30 T31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T31", "T30", "T28" ], "free": [], "exprvars": [ "T31", "T30", "T29", "T17", "T28", "T15" ] } }, "2647": { "goal": [ { "clause": 3, "scope": 3, "term": "(loop2 T15 T17 (0))" }, { "clause": 4, "scope": 3, "term": "(loop2 T15 T17 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T17", "T15" ], "free": [], "exprvars": [ "T17", "T15" ] } }, "2624": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X23 (1)) (loop2 T15 X23 (0)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": ["T15"], "free": ["X23"], "exprvars": ["T15"] } }, "2646": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T15 T17 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T17", "T15" ], "free": ["X23"], "exprvars": [ "T17", "T15" ] } }, "2645": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": ["T15"], "free": ["X23"], "exprvars": ["T15"] } }, "3239": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T80 (0)) (',' (is X113 (1)) (loop2 T80 X113 T82)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T81", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T80", "T82" ], "free": ["X113"], "exprvars": [ "T81", "T31", "T64", "T62", "T61", "T80", "T30", "T63", "T29", "T17", "T28", "T82", "T15" ] } }, "3238": { "goal": [{ "clause": 2, "scope": 5, "term": "(loop1 T64 T62 T63)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T64", "T63", "T62" ], "free": [], "exprvars": [ "T31", "T64", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "3237": { "goal": [{ "clause": 1, "scope": 5, "term": "(loop1 T64 T62 T63)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T64", "T63", "T62" ], "free": [], "exprvars": [ "T31", "T64", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "3236": { "goal": [ { "clause": 1, "scope": 5, "term": "(loop1 T64 T62 T63)" }, { "clause": 2, "scope": 5, "term": "(loop1 T64 T62 T63)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T64", "T63", "T62" ], "free": [], "exprvars": [ "T31", "T64", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "3235": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T64 T62 T63)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T64", "T63", "T62", "T61" ], "free": ["X91"], "exprvars": [ "T31", "T64", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "3234": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T63", "T62", "T61" ], "free": ["X91"], "exprvars": [ "T31", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "2649": { "goal": [{ "clause": 4, "scope": 3, "term": "(loop2 T15 T17 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T17", "T15" ], "free": [], "exprvars": [ "T17", "T15" ] } }, "10": { "goal": [ { "clause": 1, "scope": 2, "term": "(loop1 T5 T6 (0))" }, { "clause": 2, "scope": 2, "term": "(loop1 T5 T6 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "2648": { "goal": [{ "clause": 3, "scope": 3, "term": "(loop2 T15 T17 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T17", "T15" ], "free": [], "exprvars": [ "T17", "T15" ] } }, "3170": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X74 (* (2) T48)) (',' (is X75 (+ T49 (1))) (loop2 T47 X74 X75)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T48", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T47", "T49", "T48" ], "free": [ "X74", "X75" ], "exprvars": [ "T31", "T47", "T30", "T29", "T17", "T28", "T49", "T15", "T48" ] } }, "17": { "goal": [{ "clause": 1, "scope": 2, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "18": { "goal": [{ "clause": 2, "scope": 2, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "3233": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X91 (- T61 (1))) (loop1 X91 T62 T63))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T63", "T62", "T61" ], "free": ["X91"], "exprvars": [ "T31", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "3255": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3254": { "goal": [{ "clause": -1, "scope": -1, "term": "(< T105 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T105"], "free": [], "exprvars": [] } }, "3231": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T61 T62) (',' (is X91 (- T61 (1))) (loop1 X91 T62 T63)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T61", "T62", "T63" ], "free": ["X91"], "exprvars": [ "T31", "T30", "T63", "T29", "T62", "T17", "T28", "T61", "T15" ] } }, "3253": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T98 T97 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T98", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T96", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T97", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T97", "T96", "T98" ], "free": ["X133"], "exprvars": [ "T97", "T96", "T17", "T98", "T15" ] } }, "3252": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T97", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T97", "T96" ], "free": ["X133"], "exprvars": [ "T97", "T96", "T17", "T15" ] } }, "3251": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X133 (- T96 (1))) (loop1 X133 T97 (0)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T97", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T97", "T96" ], "free": ["X133"], "exprvars": [ "T97", "T96", "T17", "T15" ] } }, "3273": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T105", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "<" }] }, "ground": [], "free": [], "exprvars": ["T105"] } }, "3173": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T47 T50 T51)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T50", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T48", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T51", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T49", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T48", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T47", "T51", "T50", "T49", "T48" ], "free": [ "X74", "X75" ], "exprvars": [ "T31", "T47", "T30", "T29", "T51", "T17", "T28", "T50", "T49", "T15", "T48" ] } }, "3272": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T105", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": ">=" }] }, "ground": ["T105"], "free": [], "exprvars": ["T105"] } }, "3172": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X75 (+ T49 (1))) (loop2 T47 T50 X75))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T50", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T48", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T48", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T47", "T50", "T49", "T48" ], "free": [ "X74", "X75" ], "exprvars": [ "T31", "T47", "T30", "T29", "T17", "T28", "T50", "T49", "T15", "T48" ] } }, "3271": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T105", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "<" }] }, "ground": ["T105"], "free": [], "exprvars": ["T105"] } }, "3171": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T47", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T48", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T47", "T49", "T48" ], "free": [ "X74", "X75" ], "exprvars": [ "T31", "T47", "T30", "T29", "T17", "T28", "T49", "T15", "T48" ] } }, "2955": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X49 (+ (0) (1))) (loop2 T28 T30 X49))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T30", "T29", "T28" ], "free": [ "X48", "X49" ], "exprvars": [ "T30", "T29", "T17", "T28", "T15" ] } }, "2954": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T29", "T28" ], "free": [ "X48", "X49" ], "exprvars": [ "T29", "T17", "T28", "T15" ] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(test_fun T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "2953": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X48 (* (2) T29)) (',' (is X49 (+ (0) (1))) (loop2 T28 X48 X49)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T29", "T28" ], "free": [ "X48", "X49" ], "exprvars": [ "T29", "T17", "T28", "T15" ] } }, "3249": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T96 T97) (',' (is X133 (- T96 (1))) (loop1 X133 T97 (0))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T96", "T97" ], "free": ["X133"], "exprvars": [ "T97", "T96", "T17", "T15" ] } }, "4": { "goal": [{ "clause": 0, "scope": 1, "term": "(test_fun T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "3247": { "goal": [{ "clause": -1, "scope": -1, "term": "(< T89 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T64", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T61", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T62", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": ["T89"], "free": [], "exprvars": [ "T31", "T64", "T90", "T62", "T61", "T91", "T30", "T63", "T29", "T89", "T17", "T28", "T15" ] } }, "9": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T5 T6 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [], "exprvars": [] } }, "2958": { "goal": [ { "clause": 3, "scope": 4, "term": "(loop2 T28 T30 T31)" }, { "clause": 4, "scope": 4, "term": "(loop2 T28 T30 T31)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T31", "T30", "T28" ], "free": [], "exprvars": [ "T31", "T30", "T29", "T17", "T28", "T15" ] } }, "21": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T15 (0)) (',' (is X23 (1)) (loop2 T15 X23 (0))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T15"], "free": ["X23"], "exprvars": [] } }, "2956": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T28 T30 T31)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T29", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T28", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T28", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T15", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T31", "T30", "T29", "T28" ], "free": [ "X48", "X49" ], "exprvars": [ "T31", "T30", "T29", "T17", "T28", "T15" ] } } }, "edges": [ { "from": 2, "to": 4, "label": "CASE" }, { "from": 4, "to": 9, "label": "ONLY EVAL with clause\ntest_fun(X4, X5) :- loop1(X4, X5, 0).\nand substitutionT1 -> T5,\nX4 -> T5,\nT2 -> T6,\nX5 -> T6" }, { "from": 9, "to": 10, "label": "CASE" }, { "from": 10, "to": 17, "label": "PARALLEL" }, { "from": 10, "to": 18, "label": "PARALLEL" }, { "from": 17, "to": 21, "label": "ONLY EVAL with clause\nloop1(X20, X21, X22) :- ','(>=(X20, 0), ','(is(X23, 1), loop2(X20, X23, X22))).\nand substitutionT5 -> T15,\nX20 -> T15,\nT6 -> T16,\nX21 -> T16,\nX22 -> 0" }, { "from": 18, "to": 3254, "label": "ONLY EVAL with clause\nloop1(X144, X145, X146) :- <(X144, 0).\nand substitutionT5 -> T105,\nX144 -> T105,\nT6 -> T106,\nX145 -> T106,\nX146 -> 0" }, { "from": 21, "to": 22, "label": "IS ERROR" }, { "from": 21, "to": 2624, "label": "ARITHCOMP SUCCESS" }, { "from": 21, "to": 2645, "label": "ARITHCOMP FAIL" }, { "from": 2624, "to": 2646, "label": "\nX23 -> T17" }, { "from": 2646, "to": 2647, "label": "CASE" }, { "from": 2647, "to": 2648, "label": "PARALLEL" }, { "from": 2647, "to": 2649, "label": "PARALLEL" }, { "from": 2648, "to": 2650, "label": "ONLY EVAL with clause\nloop2(X45, X46, X47) :- ','(>(X45, X46), ','(is(X48, *(2, X46)), ','(is(X49, +(X47, 1)), loop2(X45, X48, X49)))).\nand substitutionT15 -> T28,\nX45 -> T28,\nT17 -> T29,\nX46 -> T29,\nX47 -> 0" }, { "from": 2649, "to": 3249, "label": "ONLY EVAL with clause\nloop2(X130, X131, X132) :- ','(=<(X130, X131), ','(is(X133, -(X130, 1)), loop1(X133, X131, X132))).\nand substitutionT15 -> T96,\nX130 -> T96,\nT17 -> T97,\nX131 -> T97,\nX132 -> 0" }, { "from": 2650, "to": 2953, "label": "ARITHCOMP SUCCESS" }, { "from": 2650, "to": 2954, "label": "ARITHCOMP FAIL" }, { "from": 2953, "to": 2955, "label": "\nX48 -> T30" }, { "from": 2955, "to": 2956, "label": "\nX49 -> T31" }, { "from": 2956, "to": 2958, "label": "CASE" }, { "from": 2958, "to": 3041, "label": "PARALLEL" }, { "from": 2958, "to": 3042, "label": "PARALLEL" }, { "from": 3041, "to": 3045, "label": "ONLY EVAL with clause\nloop2(X71, X72, X73) :- ','(>(X71, X72), ','(is(X74, *(2, X72)), ','(is(X75, +(X73, 1)), loop2(X71, X74, X75)))).\nand substitutionT28 -> T47,\nX71 -> T47,\nT30 -> T48,\nX72 -> T48,\nT31 -> T49,\nX73 -> T49" }, { "from": 3042, "to": 3231, "label": "ONLY EVAL with clause\nloop2(X88, X89, X90) :- ','(=<(X88, X89), ','(is(X91, -(X88, 1)), loop1(X91, X89, X90))).\nand substitutionT28 -> T61,\nX88 -> T61,\nT30 -> T62,\nX89 -> T62,\nT31 -> T63,\nX90 -> T63" }, { "from": 3045, "to": 3170, "label": "ARITHCOMP SUCCESS" }, { "from": 3045, "to": 3171, "label": "ARITHCOMP FAIL" }, { "from": 3170, "to": 3172, "label": "\nX74 -> T50" }, { "from": 3172, "to": 3173, "label": "\nX75 -> T51" }, { "from": 3173, "to": 2956, "label": "INSTANCE with matching:\nT28 -> T47\nT30 -> T50\nT31 -> T51\nX48 -> X74\nX49 -> X75" }, { "from": 3231, "to": 3233, "label": "ARITHCOMP SUCCESS" }, { "from": 3231, "to": 3234, "label": "ARITHCOMP FAIL" }, { "from": 3233, "to": 3235, "label": "\nX91 -> T64" }, { "from": 3235, "to": 3236, "label": "CASE" }, { "from": 3236, "to": 3237, "label": "PARALLEL" }, { "from": 3236, "to": 3238, "label": "PARALLEL" }, { "from": 3237, "to": 3239, "label": "ONLY EVAL with clause\nloop1(X110, X111, X112) :- ','(>=(X110, 0), ','(is(X113, 1), loop2(X110, X113, X112))).\nand substitutionT64 -> T80,\nX110 -> T80,\nT62 -> T81,\nX111 -> T81,\nT63 -> T82,\nX112 -> T82" }, { "from": 3238, "to": 3247, "label": "ONLY EVAL with clause\nloop1(X120, X121, X122) :- <(X120, 0).\nand substitutionT64 -> T89,\nX120 -> T89,\nT62 -> T90,\nX121 -> T90,\nT63 -> T91,\nX122 -> T91" }, { "from": 3249, "to": 3251, "label": "ARITHCOMP SUCCESS" }, { "from": 3249, "to": 3252, "label": "ARITHCOMP FAIL" }, { "from": 3251, "to": 3253, "label": "\nX133 -> T98" }, { "from": 3253, "to": 9, "label": "INSTANCE with matching:\nT5 -> T98\nT6 -> T97" }, { "from": 3254, "to": 3255, "label": "IS ERROR" }, { "from": 3254, "to": 3271, "label": "ARITHCOMP SUCCESS" }, { "from": 3254, "to": 3272, "label": "ARITHCOMP FAIL" }, { "from": 3271, "to": 3273, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (346) Obligation: Triples: loop2A(X1, X2, X3) :- loop2A(X1, X4, X5). loop1B(X1, X2) :- loop2A(X1, X3, X4). loop1B(X1, X2) :- loop1B(X3, X4). test_funC(X1, X2) :- loop1B(X1, X2). Clauses: loop2cA(X1, X2, X3) :- loop2cA(X1, X4, X5). loop1cB(X1, X2) :- loop2cA(X1, X3, X4). loop1cB(X1, X2) :- loop1cB(X3, X4). loop1cB(X1, X2). Afs: test_funC(x1, x2) = test_funC(x1, x2) ---------------------------------------- (347) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: test_funC_in_2: (b,b) loop1B_in_2: (b,b) (f,f) loop2A_in_3: (b,f,f) (f,f,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: TEST_FUNC_IN_GG(X1, X2) -> U4_GG(X1, X2, loop1B_in_gg(X1, X2)) TEST_FUNC_IN_GG(X1, X2) -> LOOP1B_IN_GG(X1, X2) LOOP1B_IN_GG(X1, X2) -> U2_GG(X1, X2, loop2A_in_gaa(X1, X3, X4)) LOOP1B_IN_GG(X1, X2) -> LOOP2A_IN_GAA(X1, X3, X4) LOOP2A_IN_GAA(X1, X2, X3) -> U1_GAA(X1, X2, X3, loop2A_in_gaa(X1, X4, X5)) LOOP2A_IN_GAA(X1, X2, X3) -> LOOP2A_IN_GAA(X1, X4, X5) LOOP1B_IN_GG(X1, X2) -> U3_GG(X1, X2, loop1B_in_aa(X3, X4)) LOOP1B_IN_GG(X1, X2) -> LOOP1B_IN_AA(X3, X4) LOOP1B_IN_AA(X1, X2) -> U2_AA(X1, X2, loop2A_in_aaa(X1, X3, X4)) LOOP1B_IN_AA(X1, X2) -> LOOP2A_IN_AAA(X1, X3, X4) LOOP2A_IN_AAA(X1, X2, X3) -> U1_AAA(X1, X2, X3, loop2A_in_aaa(X1, X4, X5)) LOOP2A_IN_AAA(X1, X2, X3) -> LOOP2A_IN_AAA(X1, X4, X5) LOOP1B_IN_AA(X1, X2) -> U3_AA(X1, X2, loop1B_in_aa(X3, X4)) LOOP1B_IN_AA(X1, X2) -> LOOP1B_IN_AA(X3, X4) R is empty. The argument filtering Pi contains the following mapping: loop1B_in_gg(x1, x2) = loop1B_in_gg(x1, x2) loop2A_in_gaa(x1, x2, x3) = loop2A_in_gaa(x1) loop1B_in_aa(x1, x2) = loop1B_in_aa loop2A_in_aaa(x1, x2, x3) = loop2A_in_aaa TEST_FUNC_IN_GG(x1, x2) = TEST_FUNC_IN_GG(x1, x2) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) LOOP1B_IN_GG(x1, x2) = LOOP1B_IN_GG(x1, x2) U2_GG(x1, x2, x3) = U2_GG(x1, x2, x3) LOOP2A_IN_GAA(x1, x2, x3) = LOOP2A_IN_GAA(x1) U1_GAA(x1, x2, x3, x4) = U1_GAA(x1, x4) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) LOOP1B_IN_AA(x1, x2) = LOOP1B_IN_AA U2_AA(x1, x2, x3) = U2_AA(x3) LOOP2A_IN_AAA(x1, x2, x3) = LOOP2A_IN_AAA U1_AAA(x1, x2, x3, x4) = U1_AAA(x4) U3_AA(x1, x2, x3) = U3_AA(x3) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (348) Obligation: Pi DP problem: The TRS P consists of the following rules: TEST_FUNC_IN_GG(X1, X2) -> U4_GG(X1, X2, loop1B_in_gg(X1, X2)) TEST_FUNC_IN_GG(X1, X2) -> LOOP1B_IN_GG(X1, X2) LOOP1B_IN_GG(X1, X2) -> U2_GG(X1, X2, loop2A_in_gaa(X1, X3, X4)) LOOP1B_IN_GG(X1, X2) -> LOOP2A_IN_GAA(X1, X3, X4) LOOP2A_IN_GAA(X1, X2, X3) -> U1_GAA(X1, X2, X3, loop2A_in_gaa(X1, X4, X5)) LOOP2A_IN_GAA(X1, X2, X3) -> LOOP2A_IN_GAA(X1, X4, X5) LOOP1B_IN_GG(X1, X2) -> U3_GG(X1, X2, loop1B_in_aa(X3, X4)) LOOP1B_IN_GG(X1, X2) -> LOOP1B_IN_AA(X3, X4) LOOP1B_IN_AA(X1, X2) -> U2_AA(X1, X2, loop2A_in_aaa(X1, X3, X4)) LOOP1B_IN_AA(X1, X2) -> LOOP2A_IN_AAA(X1, X3, X4) LOOP2A_IN_AAA(X1, X2, X3) -> U1_AAA(X1, X2, X3, loop2A_in_aaa(X1, X4, X5)) LOOP2A_IN_AAA(X1, X2, X3) -> LOOP2A_IN_AAA(X1, X4, X5) LOOP1B_IN_AA(X1, X2) -> U3_AA(X1, X2, loop1B_in_aa(X3, X4)) LOOP1B_IN_AA(X1, X2) -> LOOP1B_IN_AA(X3, X4) R is empty. The argument filtering Pi contains the following mapping: loop1B_in_gg(x1, x2) = loop1B_in_gg(x1, x2) loop2A_in_gaa(x1, x2, x3) = loop2A_in_gaa(x1) loop1B_in_aa(x1, x2) = loop1B_in_aa loop2A_in_aaa(x1, x2, x3) = loop2A_in_aaa TEST_FUNC_IN_GG(x1, x2) = TEST_FUNC_IN_GG(x1, x2) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) LOOP1B_IN_GG(x1, x2) = LOOP1B_IN_GG(x1, x2) U2_GG(x1, x2, x3) = U2_GG(x1, x2, x3) LOOP2A_IN_GAA(x1, x2, x3) = LOOP2A_IN_GAA(x1) U1_GAA(x1, x2, x3, x4) = U1_GAA(x1, x4) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) LOOP1B_IN_AA(x1, x2) = LOOP1B_IN_AA U2_AA(x1, x2, x3) = U2_AA(x3) LOOP2A_IN_AAA(x1, x2, x3) = LOOP2A_IN_AAA U1_AAA(x1, x2, x3, x4) = U1_AAA(x4) U3_AA(x1, x2, x3) = U3_AA(x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (349) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 11 less nodes. ---------------------------------------- (350) Complex Obligation (AND) ---------------------------------------- (351) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP2A_IN_AAA(X1, X2, X3) -> LOOP2A_IN_AAA(X1, X4, X5) R is empty. The argument filtering Pi contains the following mapping: LOOP2A_IN_AAA(x1, x2, x3) = LOOP2A_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (352) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (353) Obligation: Q DP problem: The TRS P consists of the following rules: LOOP2A_IN_AAA -> LOOP2A_IN_AAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (354) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = LOOP2A_IN_AAA evaluates to t =LOOP2A_IN_AAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from LOOP2A_IN_AAA to LOOP2A_IN_AAA. ---------------------------------------- (355) NO ---------------------------------------- (356) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP1B_IN_AA(X1, X2) -> LOOP1B_IN_AA(X3, X4) R is empty. The argument filtering Pi contains the following mapping: LOOP1B_IN_AA(x1, x2) = LOOP1B_IN_AA We have to consider all (P,R,Pi)-chains ---------------------------------------- (357) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (358) Obligation: Q DP problem: The TRS P consists of the following rules: LOOP1B_IN_AA -> LOOP1B_IN_AA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (359) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = LOOP1B_IN_AA evaluates to t =LOOP1B_IN_AA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from LOOP1B_IN_AA to LOOP1B_IN_AA. ---------------------------------------- (360) NO ---------------------------------------- (361) Obligation: Pi DP problem: The TRS P consists of the following rules: LOOP2A_IN_GAA(X1, X2, X3) -> LOOP2A_IN_GAA(X1, X4, X5) R is empty. The argument filtering Pi contains the following mapping: LOOP2A_IN_GAA(x1, x2, x3) = LOOP2A_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (362) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 1, "program": { "directives": [], "clauses": [ [ "(test_fun X Y)", "(loop1 X Y (0))" ], [ "(loop1 X Y C)", "(',' (>= X (0)) (',' (is Y1 (1)) (loop2 X Y1 C)))" ], [ "(loop1 X Y C)", "(< X (0))" ], [ "(loop2 X Y C)", "(',' (> X Y) (',' (is Y1 (* (2) Y)) (',' (is C1 (+ C (1))) (loop2 X Y1 C1))))" ], [ "(loop2 X Y C)", "(',' (=< X Y) (',' (is X1 (- X (1))) (loop1 X1 Y C)))" ] ] }, "graph": { "nodes": { "3167": { "goal": [{ "clause": 3, "scope": 4, "term": "(loop2 T34 T36 T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T36", "T34", "T37" ], "free": [], "exprvars": [ "T36", "T35", "T23", "T34", "T21", "T37" ] } }, "3166": { "goal": [ { "clause": 3, "scope": 4, "term": "(loop2 T34 T36 T37)" }, { "clause": 4, "scope": 4, "term": "(loop2 T34 T36 T37)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T36", "T34", "T37" ], "free": [], "exprvars": [ "T36", "T35", "T23", "T34", "T21", "T37" ] } }, "3165": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T34 T36 T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T36", "T35", "T34", "T37" ], "free": [ "X58", "X59" ], "exprvars": [ "T36", "T35", "T23", "T34", "T21", "T37" ] } }, "3264": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T86 (0)) (',' (is X123 (1)) (loop2 T86 X123 T88)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T87", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T86", "T88" ], "free": ["X123"], "exprvars": [ "T70", "T86", "T36", "T69", "T88", "T35", "T68", "T23", "T34", "T67", "T21", "T87", "T37" ] } }, "3164": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X59 (+ (0) (1))) (loop2 T34 T36 X59))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T36", "T35", "T34" ], "free": [ "X58", "X59" ], "exprvars": [ "T36", "T35", "T23", "T34", "T21" ] } }, "type": "Nodes", "3163": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T35", "T34" ], "free": [ "X58", "X59" ], "exprvars": [ "T35", "T23", "T34", "T21" ] } }, "3162": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X58 (* (2) T35)) (',' (is X59 (+ (0) (1))) (loop2 T34 X58 X59)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T35", "T34" ], "free": [ "X58", "X59" ], "exprvars": [ "T35", "T23", "T34", "T21" ] } }, "3261": { "goal": [{ "clause": 2, "scope": 5, "term": "(loop1 T70 T68 T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T70", "T69", "T68" ], "free": [], "exprvars": [ "T70", "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3260": { "goal": [{ "clause": 1, "scope": 5, "term": "(loop1 T70 T68 T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T70", "T69", "T68" ], "free": [], "exprvars": [ "T70", "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3259": { "goal": [ { "clause": 1, "scope": 5, "term": "(loop1 T70 T68 T69)" }, { "clause": 2, "scope": 5, "term": "(loop1 T70 T68 T69)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T70", "T69", "T68" ], "free": [], "exprvars": [ "T70", "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3258": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T70 T68 T69)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T70", "T69", "T68", "T67" ], "free": ["X101"], "exprvars": [ "T70", "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3257": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T69", "T68", "T67" ], "free": ["X101"], "exprvars": [ "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3455": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T111", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "<" }] }, "ground": [], "free": [], "exprvars": ["T111"] } }, "3256": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X101 (- T67 (1))) (loop1 X101 T68 T69))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T69", "T68", "T67" ], "free": ["X101"], "exprvars": [ "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3454": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T111", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": ">=" }] }, "ground": ["T111"], "free": [], "exprvars": ["T111"] } }, "2949": { "goal": [ { "clause": 3, "scope": 3, "term": "(loop2 T21 T23 (0))" }, { "clause": 4, "scope": 3, "term": "(loop2 T21 T23 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T23", "T21" ], "free": [], "exprvars": [ "T23", "T21" ] } }, "2948": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T21 T23 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T23", "T21" ], "free": ["X33"], "exprvars": [ "T23", "T21" ] } }, "2947": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": ["T21"], "free": ["X33"], "exprvars": ["T21"] } }, "2946": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X33 (1)) (loop2 T21 X33 (0)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": ["T21"], "free": ["X33"], "exprvars": ["T21"] } }, "13": { "goal": [{ "clause": 1, "scope": 2, "term": "(loop1 T9 T10 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T9", "T10" ], "free": [], "exprvars": [] } }, "14": { "goal": [{ "clause": 2, "scope": 2, "term": "(loop1 T9 T10 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T9", "T10" ], "free": [], "exprvars": [] } }, "15": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T21 (0)) (',' (is X33 (1)) (loop2 T21 X33 (0))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T21"], "free": ["X33"], "exprvars": [] } }, "16": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3453": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T111", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "<" }] }, "ground": ["T111"], "free": [], "exprvars": ["T111"] } }, "3177": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop2 T53 T56 T57)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T56", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T54", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T57", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T55", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T54", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T53", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T53", "T57", "T56", "T55", "T54" ], "free": [ "X84", "X85" ], "exprvars": [ "T53", "T36", "T35", "T57", "T23", "T34", "T56", "T55", "T21", "T54", "T37" ] } }, "3232": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T67 T68) (',' (is X101 (- T67 (1))) (loop1 X101 T68 T69)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T67", "T68", "T69" ], "free": ["X101"], "exprvars": [ "T36", "T69", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3176": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X85 (+ T55 (1))) (loop2 T53 T56 X85))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T56", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T54", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T54", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T53", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T53", "T56", "T55", "T54" ], "free": [ "X84", "X85" ], "exprvars": [ "T53", "T36", "T35", "T23", "T34", "T56", "T55", "T21", "T54", "T37" ] } }, "3175": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T54", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T53", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T53", "T55", "T54" ], "free": [ "X84", "X85" ], "exprvars": [ "T53", "T36", "T35", "T23", "T34", "T55", "T21", "T54", "T37" ] } }, "3274": { "goal": [{ "clause": -1, "scope": -1, "term": "(< T95 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T67", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T67", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T96", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T68", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": ["T95"], "free": [], "exprvars": [ "T70", "T97", "T36", "T69", "T95", "T96", "T35", "T68", "T23", "T34", "T67", "T21", "T37" ] } }, "3450": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3174": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X84 (* (2) T54)) (',' (is X85 (+ T55 (1))) (loop2 T53 X84 X85)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T54", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T53", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T53", "T55", "T54" ], "free": [ "X84", "X85" ], "exprvars": [ "T53", "T36", "T35", "T23", "T34", "T55", "T21", "T54", "T37" ] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(test_fun T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "3449": { "goal": [{ "clause": -1, "scope": -1, "term": "(< T111 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T111"], "free": [], "exprvars": [] } }, "3448": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T104 T103 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T104", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T102", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T103", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T104", "T103", "T102" ], "free": ["X143"], "exprvars": [ "T104", "T103", "T23", "T21", "T102" ] } }, "2952": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T34 T35) (',' (is X58 (* (2) T35)) (',' (is X59 (+ (0) (1))) (loop2 T34 X58 X59))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T34", "T35" ], "free": [ "X58", "X59" ], "exprvars": [ "T35", "T23", "T34", "T21" ] } }, "3447": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T103", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T103", "T102" ], "free": ["X143"], "exprvars": [ "T103", "T23", "T21", "T102" ] } }, "2951": { "goal": [{ "clause": 4, "scope": 3, "term": "(loop2 T21 T23 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T23", "T21" ], "free": [], "exprvars": [ "T23", "T21" ] } }, "3446": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X143 (- T102 (1))) (loop1 X143 T103 (0)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T103", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T103", "T102" ], "free": ["X143"], "exprvars": [ "T103", "T23", "T21", "T102" ] } }, "2950": { "goal": [{ "clause": 3, "scope": 3, "term": "(loop2 T21 T23 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T23", "T21" ], "free": [], "exprvars": [ "T23", "T21" ] } }, "3445": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T102 T103) (',' (is X143 (- T102 (1))) (loop1 X143 T103 (0))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T102", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T102", "T103" ], "free": ["X143"], "exprvars": [ "T103", "T23", "T21", "T102" ] } }, "6": { "goal": [{ "clause": 0, "scope": 1, "term": "(test_fun T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "3169": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T53 T54) (',' (is X84 (* (2) T54)) (',' (is X85 (+ T55 (1))) (loop2 T53 X84 X85))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T21", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T53", "T54", "T55" ], "free": [ "X84", "X85" ], "exprvars": [ "T53", "T36", "T35", "T23", "T34", "T55", "T21", "T54", "T37" ] } }, "7": { "goal": [{ "clause": -1, "scope": -1, "term": "(loop1 T9 T10 (0))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T9", "T10" ], "free": [], "exprvars": [] } }, "3168": { "goal": [{ "clause": 4, "scope": 4, "term": "(loop2 T34 T36 T37)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }, { "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "2" }, { "name": "T35", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "*" }, "operation": "=" }, { "lhs": { "name": "T37", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "type": "PlainIntegerConstant", "value": "0" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "name": "T35", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T34", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T36", "T34", "T37" ], "free": [], "exprvars": [ "T36", "T35", "T23", "T34", "T21", "T37" ] } }, "8": { "goal": [ { "clause": 1, "scope": 2, "term": "(loop1 T9 T10 (0))" }, { "clause": 2, "scope": 2, "term": "(loop1 T9 T10 (0))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T9", "T10" ], "free": [], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 6, "label": "CASE" }, { "from": 6, "to": 7, "label": "ONLY EVAL with clause\ntest_fun(X10, X11) :- loop1(X10, X11, 0).\nand substitutionT1 -> T9,\nX10 -> T9,\nT2 -> T10,\nX11 -> T10" }, { "from": 7, "to": 8, "label": "CASE" }, { "from": 8, "to": 13, "label": "PARALLEL" }, { "from": 8, "to": 14, "label": "PARALLEL" }, { "from": 13, "to": 15, "label": "ONLY EVAL with clause\nloop1(X30, X31, X32) :- ','(>=(X30, 0), ','(is(X33, 1), loop2(X30, X33, X32))).\nand substitutionT9 -> T21,\nX30 -> T21,\nT10 -> T22,\nX31 -> T22,\nX32 -> 0" }, { "from": 14, "to": 3449, "label": "ONLY EVAL with clause\nloop1(X154, X155, X156) :- <(X154, 0).\nand substitutionT9 -> T111,\nX154 -> T111,\nT10 -> T112,\nX155 -> T112,\nX156 -> 0" }, { "from": 15, "to": 16, "label": "IS ERROR" }, { "from": 15, "to": 2946, "label": "ARITHCOMP SUCCESS" }, { "from": 15, "to": 2947, "label": "ARITHCOMP FAIL" }, { "from": 2946, "to": 2948, "label": "\nX33 -> T23" }, { "from": 2948, "to": 2949, "label": "CASE" }, { "from": 2949, "to": 2950, "label": "PARALLEL" }, { "from": 2949, "to": 2951, "label": "PARALLEL" }, { "from": 2950, "to": 2952, "label": "ONLY EVAL with clause\nloop2(X55, X56, X57) :- ','(>(X55, X56), ','(is(X58, *(2, X56)), ','(is(X59, +(X57, 1)), loop2(X55, X58, X59)))).\nand substitutionT21 -> T34,\nX55 -> T34,\nT23 -> T35,\nX56 -> T35,\nX57 -> 0" }, { "from": 2951, "to": 3445, "label": "ONLY EVAL with clause\nloop2(X140, X141, X142) :- ','(=<(X140, X141), ','(is(X143, -(X140, 1)), loop1(X143, X141, X142))).\nand substitutionT21 -> T102,\nX140 -> T102,\nT23 -> T103,\nX141 -> T103,\nX142 -> 0" }, { "from": 2952, "to": 3162, "label": "ARITHCOMP SUCCESS" }, { "from": 2952, "to": 3163, "label": "ARITHCOMP FAIL" }, { "from": 3162, "to": 3164, "label": "\nX58 -> T36" }, { "from": 3164, "to": 3165, "label": "\nX59 -> T37" }, { "from": 3165, "to": 3166, "label": "CASE" }, { "from": 3166, "to": 3167, "label": "PARALLEL" }, { "from": 3166, "to": 3168, "label": "PARALLEL" }, { "from": 3167, "to": 3169, "label": "ONLY EVAL with clause\nloop2(X81, X82, X83) :- ','(>(X81, X82), ','(is(X84, *(2, X82)), ','(is(X85, +(X83, 1)), loop2(X81, X84, X85)))).\nand substitutionT34 -> T53,\nX81 -> T53,\nT36 -> T54,\nX82 -> T54,\nT37 -> T55,\nX83 -> T55" }, { "from": 3168, "to": 3232, "label": "ONLY EVAL with clause\nloop2(X98, X99, X100) :- ','(=<(X98, X99), ','(is(X101, -(X98, 1)), loop1(X101, X99, X100))).\nand substitutionT34 -> T67,\nX98 -> T67,\nT36 -> T68,\nX99 -> T68,\nT37 -> T69,\nX100 -> T69" }, { "from": 3169, "to": 3174, "label": "ARITHCOMP SUCCESS" }, { "from": 3169, "to": 3175, "label": "ARITHCOMP FAIL" }, { "from": 3174, "to": 3176, "label": "\nX84 -> T56" }, { "from": 3176, "to": 3177, "label": "\nX85 -> T57" }, { "from": 3177, "to": 3165, "label": "INSTANCE with matching:\nT34 -> T53\nT36 -> T56\nT37 -> T57\nX58 -> X84\nX59 -> X85" }, { "from": 3232, "to": 3256, "label": "ARITHCOMP SUCCESS" }, { "from": 3232, "to": 3257, "label": "ARITHCOMP FAIL" }, { "from": 3256, "to": 3258, "label": "\nX101 -> T70" }, { "from": 3258, "to": 3259, "label": "CASE" }, { "from": 3259, "to": 3260, "label": "PARALLEL" }, { "from": 3259, "to": 3261, "label": "PARALLEL" }, { "from": 3260, "to": 3264, "label": "ONLY EVAL with clause\nloop1(X120, X121, X122) :- ','(>=(X120, 0), ','(is(X123, 1), loop2(X120, X123, X122))).\nand substitutionT70 -> T86,\nX120 -> T86,\nT68 -> T87,\nX121 -> T87,\nT69 -> T88,\nX122 -> T88" }, { "from": 3261, "to": 3274, "label": "ONLY EVAL with clause\nloop1(X130, X131, X132) :- <(X130, 0).\nand substitutionT70 -> T95,\nX130 -> T95,\nT68 -> T96,\nX131 -> T96,\nT69 -> T97,\nX132 -> T97" }, { "from": 3445, "to": 3446, "label": "ARITHCOMP SUCCESS" }, { "from": 3445, "to": 3447, "label": "ARITHCOMP FAIL" }, { "from": 3446, "to": 3448, "label": "\nX143 -> T104" }, { "from": 3448, "to": 7, "label": "INSTANCE with matching:\nT9 -> T104\nT10 -> T103" }, { "from": 3449, "to": 3450, "label": "IS ERROR" }, { "from": 3449, "to": 3453, "label": "ARITHCOMP SUCCESS" }, { "from": 3449, "to": 3454, "label": "ARITHCOMP FAIL" }, { "from": 3453, "to": 3455, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (363) Complex Obligation (AND) ---------------------------------------- (364) Obligation: Rules: f3169_out(T53, T54, T55) -> f3167_out(T53, T54, T55) :|: TRUE f3167_in(x, x1, x2) -> f3169_in(x, x1, x2) :|: TRUE f3176_in(x3, x4, x5, x6) -> f3177_in(x4, x5, x7, x3, x6) :|: x7 = x3 + 1 f3177_out(x8, x9, x10, x11, x12) -> f3176_out(x11, x8, x9, x12) :|: TRUE f3169_in(x13, x14, x15) -> f3175_in(x13, x15, x14) :|: x13 <= x14 f3174_out(x16, x17, x18) -> f3169_out(x18, x16, x17) :|: x18 > x16 f3175_out(x19, x20, x21) -> f3169_out(x19, x21, x20) :|: x19 <= x21 f3169_in(x22, x23, x24) -> f3174_in(x23, x24, x22) :|: x22 > x23 f3166_out(T34, T36, T37) -> f3165_out(T34, T36, T37, T35) :|: TRUE f3165_in(x25, x26, x27, x28) -> f3166_in(x25, x26, x27) :|: TRUE f3176_out(x29, x30, x31, x32) -> f3174_out(x32, x29, x30) :|: TRUE f3174_in(x33, x34, x35) -> f3176_in(x34, x35, x36, x33) :|: x36 = 2 * x33 f3167_out(x37, x38, x39) -> f3166_out(x37, x38, x39) :|: TRUE f3166_in(x40, x41, x42) -> f3168_in(x40, x41, x42) :|: TRUE f3166_in(x43, x44, x45) -> f3167_in(x43, x44, x45) :|: TRUE f3168_out(x46, x47, x48) -> f3166_out(x46, x47, x48) :|: TRUE f3177_in(x49, x50, x51, x52, x53) -> f3165_in(x49, x50, x51, x54) :|: TRUE f3165_out(x55, x56, x57, x58) -> f3177_out(x55, x56, x57, x59, x60) :|: TRUE f1_in(T1, T2) -> f6_in(T1, T2) :|: TRUE f6_out(x61, x62) -> f1_out(x61, x62) :|: TRUE f6_in(T9, T10) -> f7_in(T9, T10) :|: TRUE f7_out(x63, x64) -> f6_out(x63, x64) :|: TRUE f7_in(x65, x66) -> f8_in(x65, x66) :|: TRUE f8_out(x67, x68) -> f7_out(x67, x68) :|: TRUE f8_in(x69, x70) -> f14_in(x69, x70) :|: TRUE f13_out(x71, x72) -> f8_out(x71, x72) :|: TRUE f14_out(x73, x74) -> f8_out(x73, x74) :|: TRUE f8_in(x75, x76) -> f13_in(x75, x76) :|: TRUE f13_in(T21, T22) -> f15_in(T21) :|: TRUE f15_out(x77) -> f13_out(x77, x78) :|: TRUE f16_out -> f15_out(x79) :|: TRUE f15_in(x80) -> f2947_in(x80) :|: x80 < 0 f2946_out(x81) -> f15_out(x81) :|: x81 >= 0 f2947_out(x82) -> f15_out(x82) :|: x82 < 0 f15_in(x83) -> f2946_in(x83) :|: x83 >= 0 f15_in(x84) -> f16_in :|: TRUE f2946_in(x85) -> f2948_in(x85, x86) :|: x86 = 1 f2948_out(x87, x88) -> f2946_out(x87) :|: TRUE f2949_out(x89, x90) -> f2948_out(x89, x90) :|: TRUE f2948_in(x91, x92) -> f2949_in(x91, x92) :|: TRUE f2950_out(x93, x94) -> f2949_out(x93, x94) :|: TRUE f2951_out(x95, x96) -> f2949_out(x95, x96) :|: TRUE f2949_in(x97, x98) -> f2951_in(x97, x98) :|: TRUE f2949_in(x99, x100) -> f2950_in(x99, x100) :|: TRUE f2952_out(x101, x102) -> f2950_out(x101, x102) :|: TRUE f2950_in(x103, x104) -> f2952_in(x103, x104) :|: TRUE f2952_in(x105, x106) -> f3162_in(x106, x105) :|: x105 > x106 f2952_in(x107, x108) -> f3163_in(x108, x107) :|: x107 <= x108 f3162_out(x109, x110) -> f2952_out(x110, x109) :|: x110 > x109 f3163_out(x111, x112) -> f2952_out(x112, x111) :|: x112 <= x111 f3164_out(x113, x114, x115) -> f3162_out(x115, x113) :|: TRUE f3162_in(x116, x117) -> f3164_in(x117, x118, x116) :|: x118 = 2 * x116 f3165_out(x119, x120, x121, x122) -> f3164_out(x119, x120, x122) :|: TRUE f3164_in(x123, x124, x125) -> f3165_in(x123, x124, x126, x125) :|: x126 = 0 + 1 Start term: f1_in(T1, T2) ---------------------------------------- (365) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f3167_in(x, x1, x2) -> f3169_in(x, x1, x2) :|: TRUE f3176_in(x3, x4, x5, x6) -> f3177_in(x4, x5, x7, x3, x6) :|: x7 = x3 + 1 f3169_in(x22, x23, x24) -> f3174_in(x23, x24, x22) :|: x22 > x23 f3165_in(x25, x26, x27, x28) -> f3166_in(x25, x26, x27) :|: TRUE f3174_in(x33, x34, x35) -> f3176_in(x34, x35, x36, x33) :|: x36 = 2 * x33 f3166_in(x43, x44, x45) -> f3167_in(x43, x44, x45) :|: TRUE f3177_in(x49, x50, x51, x52, x53) -> f3165_in(x49, x50, x51, x54) :|: TRUE ---------------------------------------- (366) Obligation: Rules: f3167_in(x, x1, x2) -> f3169_in(x, x1, x2) :|: TRUE f3176_in(x3, x4, x5, x6) -> f3177_in(x4, x5, x7, x3, x6) :|: x7 = x3 + 1 f3169_in(x22, x23, x24) -> f3174_in(x23, x24, x22) :|: x22 > x23 f3165_in(x25, x26, x27, x28) -> f3166_in(x25, x26, x27) :|: TRUE f3174_in(x33, x34, x35) -> f3176_in(x34, x35, x36, x33) :|: x36 = 2 * x33 f3166_in(x43, x44, x45) -> f3167_in(x43, x44, x45) :|: TRUE f3177_in(x49, x50, x51, x52, x53) -> f3165_in(x49, x50, x51, x54) :|: TRUE ---------------------------------------- (367) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (368) Obligation: Rules: f3165_in(x25:0, x26:0, x27:0, x28:0) -> f3165_in(x25:0, 2 * x26:0, x27:0 + 1, x54:0) :|: x26:0 < x25:0 ---------------------------------------- (369) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (370) Obligation: Rules: f3165_in(x25:0, x26:0, x27:0, x28:0) -> f3165_in(x25:0, arith, arith1, x54:0) :|: x26:0 < x25:0 && arith = 2 * x26:0 && arith1 = x27:0 + 1 ---------------------------------------- (371) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f3165_in(x25:0, x26:0, x27:0, x28:0) -> f3165_in(x25:0, arith, arith1, x54:0) :|: x26:0 < x25:0 && arith = 2 * x26:0 && arith1 = x27:0 + 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (372) Obligation: Termination digraph: Nodes: (1) f3165_in(x25:0, x26:0, x27:0, x28:0) -> f3165_in(x25:0, arith, arith1, x54:0) :|: x26:0 < x25:0 && arith = 2 * x26:0 && arith1 = x27:0 + 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (373) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (374) Obligation: Rules: f3165_in(x25:0:0, x26:0:0, x27:0:0, x28:0:0) -> f3165_in(x25:0:0, 2 * x26:0:0, x27:0:0 + 1, x54:0:0) :|: x26:0:0 < x25:0:0 ---------------------------------------- (375) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f3165_in(x1, x2, x3, x4) -> f3165_in(x1, x2) ---------------------------------------- (376) Obligation: Rules: f3165_in(x25:0:0, x26:0:0) -> f3165_in(x25:0:0, 2 * x26:0:0) :|: x26:0:0 < x25:0:0 ---------------------------------------- (377) IRSwTToIntTRSProof (SOUND) Applied path-length measure to transform intTRS with terms to intTRS. ---------------------------------------- (378) Obligation: Rules: f3165_in(x, x1) -> f3165_in(x, 2 * x1) :|: x1 < x ---------------------------------------- (379) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (380) Obligation: Rules: f3165_in(x:0, x1:0) -> f3165_in(x:0, 2 * x1:0) :|: x:0 > x1:0 ---------------------------------------- (381) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x:0, x1:0) -> f(1, x:0, 2 * x1:0) :|: pc = 1 && x:0 > x1:0 Witness term starting non-terminating reduction: f(1, 4, 0) ---------------------------------------- (382) NO ---------------------------------------- (383) Obligation: Rules: f16_out -> f15_out(T21) :|: TRUE f15_in(x) -> f2947_in(x) :|: x < 0 f2946_out(x1) -> f15_out(x1) :|: x1 >= 0 f2947_out(x2) -> f15_out(x2) :|: x2 < 0 f15_in(x3) -> f2946_in(x3) :|: x3 >= 0 f15_in(x4) -> f16_in :|: TRUE f2951_in(T102, T103) -> f3445_in(T102, T103) :|: TRUE f3445_out(x5, x6) -> f2951_out(x5, x6) :|: TRUE f2949_out(x7, x8) -> f2948_out(x7, x8) :|: TRUE f2948_in(x9, x10) -> f2949_in(x9, x10) :|: TRUE f7_in(T9, T10) -> f8_in(T9, T10) :|: TRUE f8_out(x11, x12) -> f7_out(x11, x12) :|: TRUE f3447_out(x13, x14) -> f3445_out(x14, x13) :|: x14 > x13 f3446_out(x15, x16) -> f3445_out(x15, x16) :|: x15 <= x16 f3445_in(x17, x18) -> f3446_in(x17, x18) :|: x17 <= x18 f3445_in(x19, x20) -> f3447_in(x20, x19) :|: x19 > x20 f13_in(x21, x22) -> f15_in(x21) :|: TRUE f15_out(x23) -> f13_out(x23, x24) :|: TRUE f2950_out(x25, x26) -> f2949_out(x25, x26) :|: TRUE f2951_out(x27, x28) -> f2949_out(x27, x28) :|: TRUE f2949_in(x29, x30) -> f2951_in(x29, x30) :|: TRUE f2949_in(x31, x32) -> f2950_in(x31, x32) :|: TRUE f3446_in(x33, x34) -> f3448_in(x35, x34, x33) :|: x35 = x33 - 1 f3448_out(x36, x37, x38) -> f3446_out(x38, x37) :|: TRUE f8_in(x39, x40) -> f14_in(x39, x40) :|: TRUE f13_out(x41, x42) -> f8_out(x41, x42) :|: TRUE f14_out(x43, x44) -> f8_out(x43, x44) :|: TRUE f8_in(x45, x46) -> f13_in(x45, x46) :|: TRUE f7_out(x47, x48) -> f3448_out(x47, x48, x49) :|: TRUE f3448_in(x50, x51, x52) -> f7_in(x50, x51) :|: TRUE f2946_in(x53) -> f2948_in(x53, x54) :|: x54 = 1 f2948_out(x55, x56) -> f2946_out(x55) :|: TRUE f1_in(T1, T2) -> f6_in(T1, T2) :|: TRUE f6_out(x57, x58) -> f1_out(x57, x58) :|: TRUE f6_in(x59, x60) -> f7_in(x59, x60) :|: TRUE f7_out(x61, x62) -> f6_out(x61, x62) :|: TRUE Start term: f1_in(T1, T2) ---------------------------------------- (384) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f15_in(x3) -> f2946_in(x3) :|: x3 >= 0 f2951_in(T102, T103) -> f3445_in(T102, T103) :|: TRUE f2948_in(x9, x10) -> f2949_in(x9, x10) :|: TRUE f7_in(T9, T10) -> f8_in(T9, T10) :|: TRUE f3445_in(x17, x18) -> f3446_in(x17, x18) :|: x17 <= x18 f13_in(x21, x22) -> f15_in(x21) :|: TRUE f2949_in(x29, x30) -> f2951_in(x29, x30) :|: TRUE f3446_in(x33, x34) -> f3448_in(x35, x34, x33) :|: x35 = x33 - 1 f8_in(x45, x46) -> f13_in(x45, x46) :|: TRUE f3448_in(x50, x51, x52) -> f7_in(x50, x51) :|: TRUE f2946_in(x53) -> f2948_in(x53, x54) :|: x54 = 1 ---------------------------------------- (385) Obligation: Rules: f15_in(x3) -> f2946_in(x3) :|: x3 >= 0 f2951_in(T102, T103) -> f3445_in(T102, T103) :|: TRUE f2948_in(x9, x10) -> f2949_in(x9, x10) :|: TRUE f7_in(T9, T10) -> f8_in(T9, T10) :|: TRUE f3445_in(x17, x18) -> f3446_in(x17, x18) :|: x17 <= x18 f13_in(x21, x22) -> f15_in(x21) :|: TRUE f2949_in(x29, x30) -> f2951_in(x29, x30) :|: TRUE f3446_in(x33, x34) -> f3448_in(x35, x34, x33) :|: x35 = x33 - 1 f8_in(x45, x46) -> f13_in(x45, x46) :|: TRUE f3448_in(x50, x51, x52) -> f7_in(x50, x51) :|: TRUE f2946_in(x53) -> f2948_in(x53, x54) :|: x54 = 1 ---------------------------------------- (386) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (387) Obligation: Rules: f2948_in(x9:0, x10:0) -> f2948_in(x9:0 - 1, 1) :|: x9:0 > 0 && x9:0 <= x10:0 ---------------------------------------- (388) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (389) Obligation: Rules: f2948_in(x9:0, x10:0) -> f2948_in(arith, 1) :|: x9:0 > 0 && x9:0 <= x10:0 && arith = x9:0 - 1 ---------------------------------------- (390) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f2948_in(x9:0, x10:0) -> f2948_in(arith, 1) :|: x9:0 > 0 && x9:0 <= x10:0 && arith = x9:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (391) Obligation: Termination digraph: Nodes: (1) f2948_in(x9:0, x10:0) -> f2948_in(arith, 1) :|: x9:0 > 0 && x9:0 <= x10:0 && arith = x9:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (392) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (393) Obligation: Rules: f2948_in(x9:0:0, x10:0:0) -> f2948_in(x9:0:0 - 1, 1) :|: x9:0:0 > 0 && x9:0:0 <= x10:0:0 ---------------------------------------- (394) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f2948_in(INTEGER, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (395) Obligation: Rules: f2948_in(x9:0:0, x10:0:0) -> f2948_in(c, c1) :|: c1 = 1 && c = x9:0:0 - 1 && (x9:0:0 > 0 && x9:0:0 <= x10:0:0) ---------------------------------------- (396) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f2948_in(x, x1)] = x The following rules are decreasing: f2948_in(x9:0:0, x10:0:0) -> f2948_in(c, c1) :|: c1 = 1 && c = x9:0:0 - 1 && (x9:0:0 > 0 && x9:0:0 <= x10:0:0) The following rules are bounded: f2948_in(x9:0:0, x10:0:0) -> f2948_in(c, c1) :|: c1 = 1 && c = x9:0:0 - 1 && (x9:0:0 > 0 && x9:0:0 <= x10:0:0) ---------------------------------------- (397) YES